From: Casey Bodley Date: Tue, 19 Nov 2024 19:02:02 +0000 (-0500) Subject: rgw: RGWAccessKey::decode_json() preserves default value of 'active' X-Git-Tag: testing/wip-mchangir-testing-mon-caps-main-debug~3^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=8ba6c2de830129ec0533652a3cb33391b584006d;p=ceph-ci.git rgw: RGWAccessKey::decode_json() preserves default value of 'active' squid added the new "bool active" member that defaults to true, but RGWAccessKey::decode_json() sets it to false when "active" isn't present this is an issue for multisite when a squid zone replicates user metadata from a master zone running reef Fixes: https://tracker.ceph.com/issues/68985 Signed-off-by: Casey Bodley --- diff --git a/src/rgw/rgw_common.cc b/src/rgw/rgw_common.cc index 68fb9a29278..1a59ba02999 100644 --- a/src/rgw/rgw_common.cc +++ b/src/rgw/rgw_common.cc @@ -2994,7 +2994,9 @@ void RGWAccessKey::decode_json(JSONObj *obj) { subuser = user.substr(pos + 1); } } - JSONDecoder::decode_json("active", active, obj); + if (bool tmp = false; JSONDecoder::decode_json("active", tmp, obj)) { + active = tmp; // update only if "active" is present + } JSONDecoder::decode_json("create_date", create_date, obj); }