diff options
author | Mike Gilbert <floppym@gentoo.org> | 2021-01-25 13:27:17 -0500 |
---|---|---|
committer | Mike Gilbert <floppym@gentoo.org> | 2021-01-25 13:28:13 -0500 |
commit | 20d6a21ff3e24e24a52cafaa640344d7dfaf59a3 (patch) | |
tree | 7a592796bd0869af2ab4055e5c9fe1d4a7b55b42 | |
parent | net-print/hplip: Fix hp-uiscan desktop file. (diff) | |
download | gentoo-20d6a21ff3e24e24a52cafaa640344d7dfaf59a3.tar.gz gentoo-20d6a21ff3e24e24a52cafaa640344d7dfaf59a3.tar.bz2 gentoo-20d6a21ff3e24e24a52cafaa640344d7dfaf59a3.zip |
net-misc/iputils: backport tftpd fixes
Closes: https://bugs.gentoo.org/738872
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
-rw-r--r-- | net-misc/iputils/files/iputils-20200821-fclose.patch | 45 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20200821-install-sbindir.patch | 29 | ||||
-rw-r--r-- | net-misc/iputils/iputils-20200821-r2.ebuild (renamed from net-misc/iputils/iputils-20200821-r1.ebuild) | 2 |
3 files changed, 76 insertions, 0 deletions
diff --git a/net-misc/iputils/files/iputils-20200821-fclose.patch b/net-misc/iputils/files/iputils-20200821-fclose.patch new file mode 100644 index 000000000000..cc370f0a5561 --- /dev/null +++ b/net-misc/iputils/files/iputils-20200821-fclose.patch @@ -0,0 +1,45 @@ +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); diff --git a/net-misc/iputils/files/iputils-20200821-install-sbindir.patch b/net-misc/iputils/files/iputils-20200821-install-sbindir.patch new file mode 100644 index 000000000000..cb1575841ccd --- /dev/null +++ b/net-misc/iputils/files/iputils-20200821-install-sbindir.patch @@ -0,0 +1,29 @@ +From 8d1420f3019cd1caccf2ffa15a5873f0c61ab529 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Sun, 24 Jan 2021 22:39:03 -0500 +Subject: [PATCH] tftpd: install into sbindir + +The xinet.d config expects the daemon to live in sbindir. + +Closes: https://github.com/iputils/iputils/pull/310 + +Reviewed-by: Petr Vorel <pvorel@suse.cz> +Signed-off-by: Mike Gilbert <floppym@gentoo.org> +--- + tftpd/meson.build | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/tftpd/meson.build b/tftpd/meson.build +index 6e508a24..b4cf6812 100644 +--- a/tftpd/meson.build ++++ b/tftpd/meson.build +@@ -3,7 +3,8 @@ inc = include_directories('..') + executable('tftpd', ['tftpd.c', 'tftpsubs.c', git_version_h], + include_directories : inc, + link_with : [libcommon], +- install: true) ++ install: true, ++ install_dir: sbindir) + + subs = configuration_data() + subs.set('sbindir', sbindir) diff --git a/net-misc/iputils/iputils-20200821-r1.ebuild b/net-misc/iputils/iputils-20200821-r2.ebuild index 3b1245c10826..a7ac2b0d2a99 100644 --- a/net-misc/iputils/iputils-20200821-r1.ebuild +++ b/net-misc/iputils/iputils-20200821-r2.ebuild @@ -63,6 +63,8 @@ fi PATCHES=( "${FILESDIR}/iputils-20200821-getrandom-fallback.patch" + "${FILESDIR}/iputils-20200821-fclose.patch" + "${FILESDIR}/iputils-20200821-install-sbindir.patch" ) src_prepare() { |