diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2026-05-22 17:57:12 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2026-05-22 17:57:12 +0000 |
| commit | 29351335704e39ce3ca09c528d534c7898bbdc2c (patch) | |
| tree | eba4f75dbd9de51e1ad2658f401e8dccb3d660a1 | |
| parent | a4b17594181502cea38ab0d8b2a9a10782286334 (diff) | |
tftp: Close files when we're done with them
Also, delete the file we created if receiving it failed.
MFC after: 1 week
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D57071
| -rw-r--r-- | usr.bin/tftp/main.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/usr.bin/tftp/main.c b/usr.bin/tftp/main.c index 9b7ea7155d82..a26561eaa982 100644 --- a/usr.bin/tftp/main.c +++ b/usr.bin/tftp/main.c @@ -584,8 +584,11 @@ get(int argc, char *argv[]) if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); - if (recvfile(peer, port, fd, src, mode) != 0) + if (recvfile(peer, port, fd, src, mode) != 0) { + (void) unlink(cp); txrx_error = 1; + } + close(fd); break; } cp = tail(src); /* new .. jdg */ @@ -597,8 +600,11 @@ get(int argc, char *argv[]) if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); - if (recvfile(peer, port, fd, src, mode) != 0) + if (recvfile(peer, port, fd, src, mode) != 0) { + (void) unlink(cp); txrx_error = 1; + } + close(fd); } } |
