From d37535ba3132a977116374282fbd561d0c6aaa2a Mon Sep 17 00:00:00 2001 From: Seena Fallah Date: Thu, 10 Oct 2024 22:55:44 +0200 Subject: [PATCH] rgw: initialize createparams zone_placement to avoid garbage value 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 (cherry picked from commit b92d14a0aa9d6d0701cc51edb29a44e14af01aef) --- src/rgw/rgw_sal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 6aa055bcaa410..937b929629a58 100644 --- a/src/rgw/rgw_sal.h +++ b/src/rgw/rgw_sal.h @@ -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; -- 2.39.5