From: benhanokh Date: Sun, 19 Jul 2026 07:26:47 +0000 (+0300) Subject: rgw/dedup: protects handle_notify processing of URGENT_MSG_RESTART against bad messages X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b4f1a63bfa047a8004a4b5cc9df71abc6933f8a1;p=ceph.git rgw/dedup: protects handle_notify processing of URGENT_MSG_RESTART against bad messages Tracker: https://ibm-ceph.atlassian.net/browse/IBMCEPH-16929 Signed-off-by: benhanokh --- diff --git a/src/rgw/driver/rados/rgw_dedup.cc b/src/rgw/driver/rados/rgw_dedup.cc index d9551159a48..404fed1f1b4 100644 --- a/src/rgw/driver/rados/rgw_dedup.cc +++ b/src/rgw/driver/rados/rgw_dedup.cc @@ -3163,7 +3163,7 @@ namespace rgw::dedup { case URGENT_MSG_RESTART: if (!d_ctl.dedup_exec) { // Decode optional filter - { + try { bool has_filter = false; ceph::decode(has_filter, bl_iter); if (has_filter) { @@ -3173,7 +3173,12 @@ namespace rgw::dedup { else { d_filter = dedup_filter_t{}; } + } catch (buffer::error& err) { + ldpp_dout(dpp, 1) << __func__ << "::ERROR: bad URGENT_MSG_RESTART" << dendl; + cluster::ack_notify(store, dpp, &d_ctl, notify_id, cookie, -EINVAL); + return; } + d_ctl.remote_restart_req = true; d_cond.notify_all(); }