]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: initialize createparams zone_placement to avoid garbage value
authorSeena Fallah <seenafallah@gmail.com>
Thu, 10 Oct 2024 20:55:44 +0000 (22:55 +0200)
committerSeena Fallah <seenafallah@gmail.com>
Thu, 20 Mar 2025 20:24:55 +0000 (21:24 +0100)
When creating a bucket from a secondary zonegroup and forwarding
the request to the master zonegroup
(i.e., when `bucket_zonegroup != &my_zonegroup`), the
`createparams.zone_placement` may remain uninitialized. This can
lead to garbage values and result in a segmentation fault due to
invalid memory access.

By explicitly initializing `zone_placement` to `nullptr`, we can
eliminate this issue in cases where zone_placement is referenced
like `init_default_bucket_layout`.

Fixes: https://tracker.ceph.com/issues/68500
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit b92d14a0aa9d6d0701cc51edb29a44e14af01aef)

src/rgw/rgw_sal.h

index 6aa055bcaa4103e8a6dcc424f29e0d62caafb094..937b929629a58c024c6071d5dca79956af021a1a 100644 (file)
@@ -899,7 +899,7 @@ class Bucket {
       std::string zonegroup_id;
       rgw_placement_rule placement_rule;
       // zone placement is optional on buckets created for another zonegroup
-      const RGWZonePlacementInfo* zone_placement;
+      const RGWZonePlacementInfo* zone_placement = nullptr;
       RGWAccessControlPolicy policy;
       Attrs attrs;
       bool obj_lock_enabled = false;