From: Yehuda Sadeh Date: Fri, 30 Sep 2016 00:43:00 +0000 (-0700) Subject: rgw: rgw_obj_key use adjustment in multipart copy part X-Git-Tag: v10.2.6~141^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7f76bb1229f40c4b535d97f163f26ee642798e2b;p=ceph.git rgw: rgw_obj_key use adjustment in multipart copy part This fixes a case where objects start with double underscore. Signed-off-by: Yehuda Sadeh (cherry picked from commit 29fece3545cc1df404a25eec46706b16f893a5df) --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index a61258cb9508..09ca18f796a1 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -2226,8 +2226,7 @@ int RGWPutObj::verify_permission() RGWAccessControlPolicy cs_policy(s->cct); map cs_attrs; rgw_bucket cs_bucket(copy_source_bucket_info.bucket); - rgw_obj_key cs_object(copy_source_object_name); - rgw_obj cs_obj(cs_bucket, cs_object); + rgw_obj_key cs_object(copy_source_object_name, copy_source_version_id); /* check source object permissions */ if (read_policy(store, s, copy_source_bucket_info, cs_attrs, &cs_policy, cs_bucket, cs_object) < 0) { @@ -2453,8 +2452,9 @@ int RGWPutObj::get_data(const off_t fst, const off_t lst, bufferlist& bl) new_ofs = fst; new_end = lst; - rgw_obj_key obj_key(copy_source_object_name); - rgw_obj obj(copy_source_bucket_info.bucket, obj_key); + rgw_obj_key obj_key(copy_source_object_name, copy_source_version_id); + rgw_obj obj(copy_source_bucket_info.bucket, obj_key.name); + obj.set_instance(obj_key.instance); RGWRados::Object op_target(store, copy_source_bucket_info, *static_cast(s->obj_ctx), obj); RGWRados::Object::Read read_op(&op_target);