From: Yixin Jin Date: Wed, 11 Jan 2023 18:03:37 +0000 (+0000) Subject: rgw: Fix mp upload obj leak due to reupload X-Git-Tag: v18.1.0~360^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4cc0db62d45d9aba2651e86aed931c4f59b721c7;p=ceph.git rgw: Fix mp upload obj leak due to reupload 1. Replace the ugly dynamic_cast with the call of obj_to_raw() to access the raw meta obj. Fixes: https://tracker.ceph.com/issues/16767 Signed-off-by: Yixin Jin --- diff --git a/src/rgw/driver/rados/rgw_putobj_processor.cc b/src/rgw/driver/rados/rgw_putobj_processor.cc index fae8d557bba5..4116b14a4d3b 100644 --- a/src/rgw/driver/rados/rgw_putobj_processor.cc +++ b/src/rgw/driver/rados/rgw_putobj_processor.cc @@ -502,8 +502,9 @@ int MultipartObjectProcessor::complete(size_t accounted_size, meta_obj->set_in_extra_data(true); rgw_raw_obj meta_raw_obj; - dynamic_cast(meta_obj.get())->get_raw_obj(&meta_raw_obj); - + store->getRados()->obj_to_raw(meta_obj->get_bucket()->get_placement_rule(), + meta_obj->get_obj(), + &meta_raw_obj); rgw_rados_ref meta_obj_ref; r = store->getRados()->get_raw_obj_ref(dpp, meta_raw_obj, &meta_obj_ref); if (r < 0) {