]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix trailing null in object names of multipart reuploads 39445/head
authorCasey Bodley <cbodley@redhat.com>
Thu, 14 Jan 2021 13:41:16 +0000 (08:41 -0500)
committerCasey Bodley <cbodley@redhat.com>
Fri, 12 Feb 2021 16:13:21 +0000 (11:13 -0500)
the overload being called had a comment saying:
/* size should be the required string size + 1 */

this calls a different overload that returns std::string and handles
this null termination correctly

Fixes: https://tracker.ceph.com/issues/48874
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 2ede30782b00fe28ac714047f55b11b76ae1593f)

src/rgw/rgw_putobj_processor.cc

index 2906e13c1cc0e722e9672d008935044c7c59fe0d..11b8db58499fbabaa695388f200bbda120c56ec4 100644 (file)
@@ -336,8 +336,7 @@ int MultipartObjectProcessor::process_first_chunk(bufferlist&& data,
   int r = writer.write_exclusive(data);
   if (r == -EEXIST) {
     // randomize the oid prefix and reprepare the head/manifest
-    std::string oid_rand(32, 0);
-    gen_rand_alphanumeric(store->ctx(), oid_rand.data(), oid_rand.size());
+    std::string oid_rand = gen_rand_alphanumeric(store->ctx(), 32);
 
     mp.init(target_obj->get_name(), upload_id, oid_rand);
     manifest.set_prefix(target_obj->get_name() + "." + oid_rand);