From 59c54caec072273403e5f1ccc331c8a61fb90b0b Mon Sep 17 00:00:00 2001 From: ownedu Date: Fri, 29 Sep 2017 13:50:23 +0800 Subject: [PATCH] Fix a potential coredump when handling tx_buffers under heacy RDMA traffic, there are chances to access a current_chunk which can be beyond the range of pre-allocated Tx buffer pool thus causes a coredump. Signed-off-by: Yan Lei --- src/msg/async/rdma/RDMAConnectedSocketImpl.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/msg/async/rdma/RDMAConnectedSocketImpl.cc b/src/msg/async/rdma/RDMAConnectedSocketImpl.cc index 8f2ac4a59c147..32fadaed13fe7 100644 --- a/src/msg/async/rdma/RDMAConnectedSocketImpl.cc +++ b/src/msg/async/rdma/RDMAConnectedSocketImpl.cc @@ -467,9 +467,9 @@ ssize_t RDMAConnectedSocketImpl::submit(bool more) total_copied += r; bytes -= r; if (current_chunk->full()){ - current_chunk = tx_buffers[++chunk_idx]; - if (chunk_idx == tx_buffers.size()) + if (++chunk_idx == tx_buffers.size()) return total_copied; + current_chunk = tx_buffers[chunk_idx]; } } ++start; -- 2.39.5