From 134b37861d23e7988efcb1bc15bd8339893334f8 Mon Sep 17 00:00:00 2001 From: Adrien Beraud <adrien.beraud@savoirfairelinux.com> Date: Mon, 18 Nov 2024 14:18:15 -0500 Subject: [PATCH] proxy client: fix leak in sendListen --- src/dht_proxy_client.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp index 6a1e6c54..555b9e02 100644 --- a/src/dht_proxy_client.cpp +++ b/src/dht_proxy_client.cpp @@ -1121,10 +1121,12 @@ DhtProxyClient::sendListen(const restinio::http_request_header_t& header, std::lock_guard<std::mutex> l(requestLock_); requests_[reqid] = request; } - request->add_on_status_callback([request, seconds = this->listenKeepIdle()] (unsigned status_code) { + request->add_on_status_callback([r=std::weak_ptr(request), seconds = this->listenKeepIdle()] (unsigned status_code) { if(status_code == 200) { // increase TCP_KEEPIDLE to save power - request->get_connection()->set_keepalive(seconds); + if (auto request = r.lock()) { + request->get_connection()->set_keepalive(seconds); + } } }); request->send(); -- GitLab