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)
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.key.name, upload_id, oid_rand);
manifest.set_prefix(target_obj.key.name + "." + oid_rand);