Hello community, here is the log from the commit of package iputils for openSUSE:Factory checked in at 2013-08-01 17:13:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/iputils (Old) and /work/SRC/openSUSE:Factory/.iputils.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "iputils" Changes: -------- --- /work/SRC/openSUSE:Factory/iputils/iputils.changes 2013-03-10 08:18:08.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.iputils.new/iputils.changes 2013-08-01 17:13:50.000000000 +0200 @@ -1,0 +2,5 @@ +Tue Jul 23 11:04:46 CEST 2013 - ms@suse.de + +- ping denpend on SIGALRM to exit sometime, so we mask it UNBLOCK (bnc #674304) + +------------------------------------------------------------------- New: ---- iputils-s20101006-ping-interrupt.diff iputils-s20101006-sec-ping-unblock.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ iputils.spec ++++++ --- /var/tmp/diff_new_pack.Tv8x68/_old 2013-08-01 17:13:50.000000000 +0200 +++ /var/tmp/diff_new_pack.Tv8x68/_new 2013-08-01 17:13:50.000000000 +0200 @@ -42,6 +42,8 @@ Patch3: iputils-ifenslave.diff Patch6: iputils-s20101006-capabilities.diff Patch7: iputils-pingtypo.diff +Patch8: iputils-s20101006-sec-ping-unblock.diff +Patch9: iputils-s20101006-ping-interrupt.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: permissions @@ -59,6 +61,8 @@ #patch5 %patch6 -p1 %patch7 +%patch8 +%patch9 mkdir linux touch linux/autoconf.h ++++++ iputils-s20101006-ping-interrupt.diff ++++++ --- ping.c 2013-07-23 11:15:15.851715020 +0200 +++ ping.c 2013-07-23 11:15:28.075824028 +0200 @@ -103,6 +103,7 @@ static u_short in_cksum(const u_short *addr, int len, u_short salt); static void pr_icmph(__u8 type, __u8 code, __u32 info, struct icmphdr *icp); static int parsetos(char *str); +static void doexit (int); static struct { struct cmsghdr cm; @@ -266,6 +267,8 @@ options |= F_SOURCEROUTE; } } + set_signal(SIGINT, doexit); + while (argc > 0) { target = *argv; @@ -1273,3 +1276,9 @@ " [-T tstamp-options] [-Q tos] [hop1 ...] destination\n"); exit(2); } + +static void doexit(int signo) +{ + exit (1); +} + ++++++ iputils-s20101006-sec-ping-unblock.diff ++++++ --- ping.c 2013-07-23 11:02:26.364843595 +0200 +++ ping.c 2013-07-23 11:02:32.740900627 +0200 @@ -129,6 +129,16 @@ cap_t caps; #endif + /* + * ping depend on SIGALARM to exit sometimes, + * but to popen, system, fork carry on parent signal handler + * so we mask it ourself. + */ + sigset_t s; + sigaddset(&s, SIGALRM); + sigprocmask(SIG_UNBLOCK, &s, NULL); + set_signal(SIGALRM, doexit); + icmp_sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); socket_errno = errno; -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org