]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix trailing null in object names of multipart reuploads 38905/head
authorCasey Bodley <cbodley@redhat.com>
Thu, 14 Jan 2021 13:41:16 +0000 (08:41 -0500)
committerCasey Bodley <cbodley@redhat.com>
Thu, 14 Jan 2021 13:57:42 +0000 (08:57 -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>
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);