From: x2018 Date: Sat, 8 Nov 2025 15:44:58 +0000 (+0800) Subject: tftp: release filename if conn_get_remote_addr fails X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=59584399a5a10a923bc33adf3d2037143f279a4e;p=thirdparty%2Fcurl.git tftp: release filename if conn_get_remote_addr fails Closes #19409 --- diff --git a/lib/tftp.c b/lib/tftp.c index ffea60f621..6536543151 100644 --- a/lib/tftp.c +++ b/lib/tftp.c @@ -479,6 +479,7 @@ static CURLcode tftp_send_first(struct tftp_conn *state, state->blksize, "%s%c%s%c", filename, '\0', mode, '\0'); sbytes = 4 + strlen(filename) + strlen(mode); + free(filename); /* optional addition of TFTP options */ if(!data->set.tftp_no_options) { @@ -517,7 +518,6 @@ static CURLcode tftp_send_first(struct tftp_conn *state, if(result != CURLE_OK) { failf(data, "TFTP buffer too small for options"); - free(filename); return CURLE_TFTP_ILLEGAL; } } @@ -537,7 +537,6 @@ static CURLcode tftp_send_first(struct tftp_conn *state, (SEND_TYPE_ARG3)sbytes, 0, CURL_SENDTO_ARG5(&remote_addr->curl_sa_addr), (curl_socklen_t)remote_addr->addrlen); - free(filename); if(senddata != (ssize_t)sbytes) { char buffer[STRERROR_LEN]; failf(data, "%s", curlx_strerror(SOCKERRNO, buffer, sizeof(buffer)));