From: Matt Benjamin Date: Tue, 12 Jan 2021 22:13:28 +0000 (-0500) Subject: rgw: avoid (rgw_file) illegal access to stack memory X-Git-Tag: v17.0.0~18^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=9773f0a5386a9b75a13a9f1424c7f90b40f2d847;p=ceph.git rgw: avoid (rgw_file) illegal access to stack memory Fixes: https://tracker.ceph.com/issues/48941 Signed-off-by: Matt Benjamin --- diff --git a/src/rgw/rgw_common.cc b/src/rgw/rgw_common.cc index b657598dba6e3..21a6ac5790f2b 100644 --- a/src/rgw/rgw_common.cc +++ b/src/rgw/rgw_common.cc @@ -1012,14 +1012,16 @@ namespace { struct perm_state_from_req_state : public perm_state_base { req_state * const s; - perm_state_from_req_state(req_state * const _s) : perm_state_base(_s->cct, - _s->env, - _s->auth.identity.get(), - _s->bucket.get() ? _s->bucket->get_info() : RGWBucketInfo(), - _s->perm_mask, - _s->defer_to_bucket_acls, - _s->bucket_access_conf), - s(_s) {} + perm_state_from_req_state(req_state * const _s) + : perm_state_base(_s->cct, + _s->env, + _s->auth.identity.get(), + _s->bucket.get() ? _s->bucket->get_info() : RGWBucketInfo(), + _s->perm_mask, + _s->defer_to_bucket_acls, + _s->bucket_access_conf), + s(_s) {} + std::optional get_request_payer() const override { const char *request_payer = s->info.env->get("HTTP_X_AMZ_REQUEST_PAYER"); if (!request_payer) { diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index dd62c3e254b64..4a96a86492760 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -1995,7 +1995,7 @@ struct perm_state_base { CephContext *cct; const rgw::IAM::Environment& env; rgw::auth::Identity *identity; - const RGWBucketInfo& bucket_info; + const RGWBucketInfo bucket_info; int perm_mask; bool defer_to_bucket_acls; boost::optional bucket_access_conf;