From 63b5e589328b4eb50b7593e2a3d1e43e2b049ac3 Mon Sep 17 00:00:00 2001 From: thesues Date: Tue, 27 May 2025 21:36:15 +0000 Subject: [PATCH] fix: #179,fix double free uv_handle --- src/infinistore.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/infinistore.cpp b/src/infinistore.cpp index d5cf5a3..85bddd1 100644 --- a/src/infinistore.cpp +++ b/src/infinistore.cpp @@ -117,11 +117,6 @@ Client::~Client() { uv_poll_stop(&poll_handle_); } - if (handle_) { - free(handle_); - handle_ = NULL; - } - if (send_mr_) { ibv_dereg_mr(send_mr_); send_mr_ = NULL; @@ -155,6 +150,12 @@ Client::~Client() { tcp_recv_buffer_ = NULL; } + while (!outstanding_rdma_ops_queue_.empty()) { + auto item = outstanding_rdma_ops_queue_.front(); + delete[] item.first; // ibv_send_wr array + delete[] item.second; // ibv_sge array + outstanding_rdma_ops_queue_.pop_front(); + } destroy_rdma_context(&rdma_ctx_); }