Skip to contentSkip to conversation

iputils: backport patch to fix arping hang problem

PATCH In review Chen Qi 1 participant 3 messages Sep 7, 2017 – Sep 11, 2017

lore
Share & tools
lore

Chen Qi

author
#0 lore raw

cover iputils: backport patch to fix arping hang problem

The following changes since commit 8b4f16a9cbbaf521461f699b7264fac2ac872581:

mesa-gl: Fix build after recent mesa PACKAGECONFIG changes (2017-09-05 15:01:02 +0100)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib ChenQi/iputils-hang
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/iputils-hang

Chen Qi (1):
iputils: backport patch to fix arping hang problem

 ...ing-fix-arping-hang-if-SIGALRM-is-blocked.patch | 44 ++++++++++++++++++++++
 meta/recipes-extended/iputils/iputils_s20151218.bb |  1 +
 2 files changed, 45 insertions(+)
 create mode 100644 meta/recipes-extended/iputils/files/arping-fix-arping-hang-if-SIGALRM-is-blocked.patch
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH 1/1 iputils: backport patch to fix arping hang problem

arping hangs if SIGALARM is blocked. Backport a patch to fix this problem.

Unblock SIGALRM so that the previously called alarm() can prevent recvfrom() from blocking forever in case the inherited procmask is blocking SIGALRM and no packet is received.

---
 ...ing-fix-arping-hang-if-SIGALRM-is-blocked.patch | 44 ++++++++++++++++++++++
 meta/recipes-extended/iputils/iputils_s20151218.bb |  1 +
 2 files changed, 45 insertions(+)
 create mode 100644 meta/recipes-extended/iputils/files/arping-fix-arping-hang-if-SIGALRM-is-blocked.patch
meta/recipes-extended/iputils/files/arping-fix-arping-hang-if-SIGALRM-is-blocked.patch new file +44 -0
new file mode 100644
index 0000000..7b56276
@@ -0,0 +1,44 @@
+arping: fix arping hang if SIGALRM is blocked
+
+Unblock SIGALRM so that the previously called alarm() can prevent
+recvfrom() from blocking forever in case the inherited procmask is
+blocking SIGALRM and no packet is received.
+
+Upstream-Status: Backport
+
+Reported-by: Rui Prior <[email protected]>
+RH-Bugzilla: #1085971
+Signed-off-by: Jan Synacek <[email protected]>
+Signed-off-by: Zhenbo Gao <[email protected]>
+
+diff --git a/arping.c.orig b/arping.c
+index 35408c1..2098159 100644
+--- a/arping.c.orig
++++ b/arping.c
+@@ -1215,16 +1215,22 @@ main(int argc, char **argv)
+ 		socklen_t alen = sizeof(from);
+ 		int cc;
+ 
++		sigemptyset(&sset);
++		sigaddset(&sset, SIGALRM);
++		sigaddset(&sset, SIGINT);
++		/* Unblock SIGALRM so that the previously called alarm()
++		 * can prevent recvfrom from blocking forever in case the
++		 * inherited procmask is blocking SIGALRM and no packet
++		 * is received. */
++		sigprocmask(SIG_UNBLOCK, &sset, &osset);
++
+ 		if ((cc = recvfrom(s, packet, sizeof(packet), 0,
+ 				   (struct sockaddr *)&from, &alen)) < 0) {
+ 			perror("arping: recvfrom");
+ 			continue;
+ 		}
+ 
+-		sigemptyset(&sset);
+-		sigaddset(&sset, SIGALRM);
+-		sigaddset(&sset, SIGINT);
+-		sigprocmask(SIG_BLOCK, &sset, &osset);
++		sigprocmask(SIG_BLOCK, &sset, NULL);
+ 		recv_pack(packet, cc, (struct sockaddr_ll *)&from);
+ 		sigprocmask(SIG_SETMASK, &osset, NULL);
+ 	}
meta/recipes-extended/iputils/iputils_s20151218.bb +1 -0
index 0d4dd1b..46de6fc 100644
@@ -20,6 +20,7 @@ SRC_URI = "http://www.skbuff.net/iputils/${BPN}-${PV}.tar.bz2 \
            file://nsgmls-path-fix.patch \
            file://0001-Fix-header-inclusion-for-musl.patch \
            file://0001-Intialize-struct-elements-by-name.patch \
+           file://arping-fix-arping-hang-if-SIGALRM-is-blocked.patch \
           "
 
 SRC_URI[md5sum] = "8aaa7395f27dff9f57ae016d4bc753ce"
Signature · 1 line
1.9.1
author
#2 lore raw
In reply to Chen Qi

ping

Quoted 17 lines · Chen Qi

The following changes since commit 8b4f16a9cbbaf521461f699b7264fac2ac872581:

mesa-gl: Fix build after recent mesa PACKAGECONFIG changes (2017-09-05 15:01:02 +0100)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib ChenQi/iputils-hang
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/iputils-hang

Chen Qi (1):
iputils: backport patch to fix arping hang problem

  ...ing-fix-arping-hang-if-SIGALRM-is-blocked.patch | 44 ++++++++++++++++++++++
  meta/recipes-extended/iputils/iputils_s20151218.bb |  1 +
  2 files changed, 45 insertions(+)

create mode 100644 meta/recipes-extended/iputils/files/arping-fix-arping-hang-if-SIGALRM-is-blocked.patch