commit: 1ae7ddd19bc5c2713e5b6a100c69663d58ca72fa
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 9 19:06:09 2018 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Dec 9 19:16:00 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1ae7ddd1
sys-devel/distcc: Backport fix for crash on non-existing dir
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
...stcc-3.3.2-r3.ebuild => distcc-3.3.2-r4.ebuild} | 2 ++
.../distcc/files/distcc-3.3.2-noexist-crash.patch | 22 ++++++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/sys-devel/distcc/distcc-3.3.2-r3.ebuild
b/sys-devel/distcc/distcc-3.3.2-r4.ebuild
similarity index 98%
rename from sys-devel/distcc/distcc-3.3.2-r3.ebuild
rename to sys-devel/distcc/distcc-3.3.2-r4.ebuild
index 1266d913df9..01cca1f446a 100644
--- a/sys-devel/distcc/distcc-3.3.2-r3.ebuild
+++ b/sys-devel/distcc/distcc-3.3.2-r4.ebuild
@@ -56,6 +56,8 @@ src_prepare() {
eapply "${FILESDIR}/${PN}-3.3.2-freedesktop.patch"
# SOCKSv5 support needed for Portage, bug #537616
eapply "${FILESDIR}/${PN}-3.2_rc1-socks5.patch"
+ # crash on missing directory
+ eapply "${FILESDIR}"/distcc-3.3.2-noexist-crash.patch
eapply_user
# Bugs #120001, #167844 and probably more. See patch for description.
diff --git a/sys-devel/distcc/files/distcc-3.3.2-noexist-crash.patch
b/sys-devel/distcc/files/distcc-3.3.2-noexist-crash.patch
new file mode 100644
index 00000000000..7f378082d99
--- /dev/null
+++ b/sys-devel/distcc/files/distcc-3.3.2-noexist-crash.patch
@@ -0,0 +1,22 @@
+From 24f73c5cd8f839bd520eb52e91d0d26e07689373 Mon Sep 17 00:00:00 2001
+From: Shawn Landden <[email protected]>
+Date: Wed, 29 Aug 2018 04:52:38 -0700
+Subject: [PATCH] fix #304
+
+---
+ src/daemon.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/daemon.c b/src/daemon.c
+index 5765982..c8fee7c 100644
+--- a/src/daemon.c
++++ b/src/daemon.c
+@@ -166,7 +166,7 @@ static void dcc_warn_masquerade_whitelist(void) {
+ rs_log_crit(LIBDIR "/distcc not found. %s", warn);
+ dcc_exit(EXIT_COMPILER_MISSING);
+ }
+- if (!readdir(e) && !readdir(d)) {
++ if ((!e || !readdir(e)) && (!d || !readdir(d))) {
+ rs_log_crit(LIBDIR "/distcc empty. %s", warn);
+ dcc_exit(EXIT_COMPILER_MISSING);
+ }