diff options
author | Ren Kararou <[email protected]> | 2025-01-25 20:20:37 -0600 |
---|---|---|
committer | Ren Kararou <[email protected]> | 2025-01-25 20:20:37 -0600 |
commit | 9ec8d6d9dc03791f6ab1e3ad108c8d705d355696 (patch) | |
tree | eaa277a55a1bc5d4db89e3db9f4785becdcbacd3 /src/handlers.c | |
parent | a9bddce6d690838d8bfb586da918c406dd853e93 (diff) | |
download | nbtpd-canon.tar.gz nbtpd-canon.tar.bz2 nbtpd-canon.zip |
Diffstat (limited to 'src/handlers.c')
-rw-r--r-- | src/handlers.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/handlers.c b/src/handlers.c index 1d4d92c..d42382e 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -442,6 +442,7 @@ void *write_req_resp(void *args) { if (rcv >= 4) { nbd_tftp_packet_data data = nbd_tftp_de_data(rxb, rcv); if (data.opcode == 5) { + free(data.data); goto cleanup; } syslog( @@ -465,22 +466,27 @@ void *write_req_resp(void *args) { ); argptr->err = 5; senderror(s, argptr); + free(data.data); goto cleanup; } if (fwrite(data.data, 1, data.datalen, fp) < data.datalen) { syslog(LOG_ERR, "filewrite failed for %s: %s", fname, strerror(errno)); argptr->err = 0; senderror(s, argptr); + free(data.data); goto clean_socket; } } + free(data.data); break; } if (data.block_num == (bnum - 1)) { rxon = 0; vcount++; + free(data.data); break; } + free(data.data); } if (++rxcount > 30) { syslog(LOG_ERR, "retry count exceeded"); |