From: Tongliang Deng Date: Tue, 13 Dec 2022 06:42:34 +0000 (+0000) Subject: rgw/sse-s3: fix bucket encryption of multipart upload X-Git-Tag: v19.0.0~1425^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6d9e4f7924c6149d23919ef82bc09406e1290164;p=ceph.git rgw/sse-s3: fix bucket encryption of multipart upload Multipart upload missing encryption when we have bucket encryption policy. Fix it by fetching bucket encryption policy and resolving defaults at multipart init op. Fixes: https://tracker.ceph.com/issues/59218 Signed-off-by: Tongliang Deng --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 29552560b27c..d898c78f7ca5 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -6225,8 +6225,10 @@ void RGWInitMultipart::execute(optional_yield y) bufferlist aclbl, tracebl; rgw::sal::Attrs attrs; - if (get_params(y) < 0) + op_ret = get_params(y); + if (op_ret < 0) { return; + } if (rgw::sal::Object::empty(s->object.get())) return; diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 6a2ec4a0b9f6..65dc027372bd 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -3876,10 +3876,18 @@ void RGWSetRequestPayment_ObjStore_S3::send_response() int RGWInitMultipart_ObjStore_S3::get_params(optional_yield y) { + int ret; + + ret = get_encryption_defaults(s); + if (ret < 0) { + ldpp_dout(this, 5) << __func__ << "(): get_encryption_defaults() returned ret=" << ret << dendl; + return ret; + } + RGWAccessControlPolicy_S3 s3policy(s->cct); - op_ret = create_s3_policy(s, driver, s3policy, s->owner); - if (op_ret < 0) - return op_ret; + ret = create_s3_policy(s, driver, s3policy, s->owner); + if (ret < 0) + return ret; policy = s3policy;