fix: string leak regression when udp announces fail (#2440)

This commit is contained in:
Charles Kerr 2022-01-18 11:20:14 -06:00 committed by GitHub
parent 546fefbd9c
commit 0e3a695af2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 5 deletions

View File

@ -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<char const*>(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);