]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: avoid (rgw_file) illegal access to stack memory 38991/head
authorMatt Benjamin <mbenjamin@redhat.com>
Tue, 12 Jan 2021 22:13:28 +0000 (17:13 -0500)
committerCasey Bodley <cbodley@redhat.com>
Wed, 20 Jan 2021 18:46:58 +0000 (13:46 -0500)
Fixes: https://tracker.ceph.com/issues/48941
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/rgw/rgw_common.cc
src/rgw/rgw_common.h

index b657598dba6e3f4d0e8f40b9e101a37ef0b22320..21a6ac5790f2b9add2b5a889d0ff5026f89a4c4e 100644 (file)
@@ -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<bool> get_request_payer() const override {
     const char *request_payer = s->info.env->get("HTTP_X_AMZ_REQUEST_PAYER");
     if (!request_payer) {
index dd62c3e254b641f3ab55886eff0327ea513d95ba..4a96a86492760044275e060034a0266b8b4d731c 100644 (file)
@@ -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<PublicAccessBlockConfiguration> bucket_access_conf;