From 0e3a695af2991eb2a72ca0a548a4a00b8d9f4b36 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 18 Jan 2022 11:20:14 -0600 Subject: [PATCH] fix: string leak regression when udp announces fail (#2440) --- libtransmission/announcer-udp.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libtransmission/announcer-udp.cc b/libtransmission/announcer-udp.cc index 04cd444b5..c635595a8 100644 --- a/libtransmission/announcer-udp.cc +++ b/libtransmission/announcer-udp.cc @@ -378,7 +378,7 @@ static void tau_announce_request_fail( { request->response.did_connect = did_connect; request->response.did_timeout = did_timeout; - request->response.errmsg = tr_strvDup(errmsg); + request->response.errmsg = errmsg; tau_announce_request_finished(request); } @@ -595,12 +595,12 @@ static void on_tracker_connection_response(struct tau_tracker* tracker, tau_acti { size_t const buflen = buf != nullptr ? evbuffer_get_length(buf) : 0; - char* const errmsg = action == TAU_ACTION_ERROR && buflen > 0 ? tr_strndup(evbuffer_pullup(buf, -1), buflen) : - tr_strdup(_("Connection failed")); + auto const errmsg = action == TAU_ACTION_ERROR && buflen > 0 ? + std::string_view{ reinterpret_cast(evbuffer_pullup(buf, -1)), buflen } : + std::string_view{ _("Connection failed") }; - dbgmsg(tracker->key, "%s", errmsg); + dbgmsg(tracker->key, "%" TR_PRIsv, TR_PRIsv_ARG(errmsg)); tau_tracker_fail_all(tracker, true, false, errmsg); - tr_free(errmsg); } tau_tracker_upkeep(tracker);