commit:     20d6a21ff3e24e24a52cafaa640344d7dfaf59a3
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 25 18:27:17 2021 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Jan 25 18:28:13 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20d6a21f

net-misc/iputils: backport tftpd fixes

Closes: https://bugs.gentoo.org/738872
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 .../iputils/files/iputils-20200821-fclose.patch    | 45 ++++++++++++++++++++++
 .../files/iputils-20200821-install-sbindir.patch   | 29 ++++++++++++++
 ...200821-r1.ebuild => iputils-20200821-r2.ebuild} |  2 +
 3 files changed, 76 insertions(+)

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 00000000000..cc370f0a556
--- /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 <[email protected]>
+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 <[email protected]>
+Signed-off-by: Mike Gilbert <[email protected]>
+---
+ 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 00000000000..cb1575841cc
--- /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 <[email protected]>
+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 <[email protected]>
+Signed-off-by: Mike Gilbert <[email protected]>
+---
+ 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
similarity index 97%
rename from net-misc/iputils/iputils-20200821-r1.ebuild
rename to net-misc/iputils/iputils-20200821-r2.ebuild
index 3b1245c1082..a7ac2b0d2a9 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() {

Reply via email to