@@ -3851,6 +3851,7 @@ int RGWPutObj::init_processing(optional_yield y) {
38513851 return ret;
38523852 }
38533853 copy_source_bucket_info = bucket->get_info ();
3854+ copy_source_bucket_attrs = bucket->get_attrs ();
38543855
38553856 /* handle x-amz-copy-source-range */
38563857 if (copy_source_range) {
@@ -3910,15 +3911,14 @@ int RGWPutObj::verify_permission(optional_yield y)
39103911
39113912 RGWAccessControlPolicy cs_acl;
39123913 boost::optional<Policy> policy;
3913- map<string, bufferlist> cs_attrs;
39143914 auto cs_bucket = driver->get_bucket (copy_source_bucket_info);
39153915 auto cs_object = cs_bucket->get_object (rgw_obj_key (copy_source_object_name,
39163916 copy_source_version_id));
39173917 cs_object->set_atomic ();
39183918 cs_object->set_prefetch_data ();
39193919
39203920 /* check source object permissions */
3921- int ret = read_obj_policy (this , driver, s, copy_source_bucket_info, cs_attrs , cs_acl, nullptr ,
3921+ int ret = read_obj_policy (this , driver, s, copy_source_bucket_info, copy_source_bucket_attrs , cs_acl, nullptr ,
39223922 policy, cs_bucket.get (), cs_object.get (), y, true );
39233923 if (ret < 0 ) {
39243924 return ret;
@@ -3927,7 +3927,7 @@ int RGWPutObj::verify_permission(optional_yield y)
39273927 RGWAccessControlPolicy cs_bucket_acl;
39283928 ret = rgw_op_get_bucket_policy_from_attr (this , s->cct , driver,
39293929 copy_source_bucket_info.owner ,
3930- cs_attrs , cs_bucket_acl, y);
3930+ copy_source_bucket_attrs , cs_bucket_acl, y);
39313931 if (ret < 0 ) {
39323932 return ret;
39333933 }
0 commit comments