diff options
Diffstat (limited to 'net-misc/iputils/files/iputils-20200821-fclose.patch')
-rw-r--r-- | net-misc/iputils/files/iputils-20200821-fclose.patch | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/net-misc/iputils/files/iputils-20200821-fclose.patch b/net-misc/iputils/files/iputils-20200821-fclose.patch deleted file mode 100644 index cc370f0a5561..000000000000 --- a/net-misc/iputils/files/iputils-20200821-fclose.patch +++ /dev/null @@ -1,45 +0,0 @@ -From e1c3d09b412ad0d022178344b8cbf748dc60f17f Mon Sep 17 00:00:00 2001 -From: Mike Gilbert <floppym@gentoo.org> -Date: Sun, 24 Jan 2021 23:29:27 -0500 -Subject: [PATCH] tftpd: recvfile: avoid closing the file twice - -The close_stream function calls fclose, so don't call it again. - -This resolves an abort in glibc: - - Message: Process 1038079 (tftpd) of user 65534 dumped core. - - Stack trace of thread 1038079: - #0 0x00007f5f650ed204 raise (libc.so.6 + 0x39204) - #1 0x00007f5f650d6547 abort (libc.so.6 + 0x22547) - #2 0x00007f5f6512f25f n/a (libc.so.6 + 0x7b25f) - #3 0x00007f5f651372fa n/a (libc.so.6 + 0x832fa) - #4 0x00007f5f65138dc2 n/a (libc.so.6 + 0x84dc2) - #5 0x00007f5f65124b2f fclose (libc.so.6 + 0x70b2f) - #6 0x000055571a50de73 recvfile (tftpd + 0x2e73) - #7 0x000055571a50e064 tftp (tftpd + 0x3064) - #8 0x000055571a50e387 tftpd_inetd (tftpd + 0x3387) - #9 0x000055571a50e50f main (tftpd + 0x350f) - #10 0x00007f5f650d7e6d __libc_start_main (libc.so.6 + 0x23e6d) - #11 0x000055571a50d3ca _start (tftpd + 0x23ca) - -Fixes: 5d6be65 ("tftpd: remove global variables by using a run state struct") - -Reviewed-by: Petr Vorel <pvorel@suse.cz> -Signed-off-by: Mike Gilbert <floppym@gentoo.org> ---- - tftpd/tftpd.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/tftpd/tftpd.c b/tftpd/tftpd.c -index 42998f9b..a09d32ba 100644 ---- a/tftpd/tftpd.c -+++ b/tftpd/tftpd.c -@@ -387,7 +387,6 @@ void recvfile(struct run_state *ctl, struct formats *pf) - write_behind(ctl->file, pf->f_convert); - if (close_stream(ctl->file)) - syslog(LOG_ERR, "tftpd: write error: %s\n", strerror(errno)); -- fclose(ctl->file); /* close data file */ - - ap->th_opcode = htons((uint16_t)ACK); /* send the "final" ack */ - ap->th_block = htons(block); |