From: Seena Fallah Date: Thu, 10 Oct 2024 20:55:44 +0000 (+0200) Subject: rgw: initialize createparams zone_placement to avoid garbage value X-Git-Tag: v19.2.3~241^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d37535ba3132a977116374282fbd561d0c6aaa2a;p=ceph.git 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) --- diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 6aa055bcaa4..937b929629a 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;