From 07499bf7f997c88154a575fc13aee9fcdeefb0f2 Mon Sep 17 00:00:00 2001 From: Lorentz-Andrea Romeo <67752904+L0rentz@users.noreply.github.com> Date: Wed, 17 Jun 2026 07:44:06 +0200 Subject: [PATCH] Fix use two-iterator erase-remove in multiplexer::cancel to avoid UB --- include/boost/redis/impl/multiplexer.ipp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/redis/impl/multiplexer.ipp b/include/boost/redis/impl/multiplexer.ipp index f548b2ab..f68bd2fa 100644 --- a/include/boost/redis/impl/multiplexer.ipp +++ b/include/boost/redis/impl/multiplexer.ipp @@ -58,7 +58,7 @@ void multiplexer::cancel(std::shared_ptr const& ptr) { if (ptr->is_waiting()) { // We can safely remove it from the queue, since it hasn't been sent yet - reqs_.erase(std::remove(std::begin(reqs_), std::end(reqs_), ptr)); + reqs_.erase(std::remove(std::begin(reqs_), std::end(reqs_), ptr), std::end(reqs_)); } else { // Removing the request would cause trouble when the response arrived. // Mark it as abandoned, so the response is discarded when it arrives