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 - [email protected]
+
+- 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to