From 2ccb75974b36729e50588626fd264d7463874ab4 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Fri, 30 Oct 2020 01:04:58 +0300 Subject: [PATCH] Fix a rare crash caused by a stopped client still being in write_ready_clients --- msgr_send.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/msgr_send.cpp b/msgr_send.cpp index 54ba72f4..bef6679d 100644 --- a/msgr_send.cpp +++ b/msgr_send.cpp @@ -153,7 +153,8 @@ void osd_messenger_t::send_replies() for (int i = 0; i < write_ready_clients.size(); i++) { int peer_fd = write_ready_clients[i]; - if (!try_send(clients[peer_fd])) + auto cl_it = clients.find(peer_fd); + if (cl_it != clients.end() && !try_send(cl_it->second)) { write_ready_clients.erase(write_ready_clients.begin(), write_ready_clients.begin() + i); return;