[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r6854 - in glibc-package/trunk/debian: . patches patches/hurd-i386



Author: sthibault
Date: 2016-01-03 03:29:25 +0000 (Sun, 03 Jan 2016)
New Revision: 6854

Added:
   glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread-sigstate.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
* patches/hurd-i386/cvs-libpthread-sigstate.diff: New patch to fix spurious
signal blocking leading to sigill.  Fixes rsyslog tests.


Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2016-01-02 13:53:21 UTC (rev 6853)
+++ glibc-package/trunk/debian/changelog	2016-01-03 03:29:25 UTC (rev 6854)
@@ -7,6 +7,10 @@
   * Update French debconf translation, by Christian Perrier.  Closes:
     #809636.
 
+  [ Samuel Thibault ]
+  * patches/hurd-i386/cvs-libpthread-sigstate.diff: New patch to fix spurious
+    signal blocking leading to sigill.  Fixes rsyslog tests.
+
  -- Aurelien Jarno <aurel32@debian.org>  Fri, 25 Dec 2015 03:38:46 +0100
 
 glibc (2.21-6) unstable; urgency=medium

Added: glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread-sigstate.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread-sigstate.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread-sigstate.diff	2016-01-03 03:29:25 UTC (rev 6854)
@@ -0,0 +1,57 @@
+commit 6106225fdc09f013ec4f7b1d7ec82780061c8a14
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date:   Sun Jan 3 04:20:02 2016 +0100
+
+    Do not block unmaskable signals
+    
+    * sysdeps/mach/hurd/pt-sigstate.c (__pthread_sigstate): Always remove
+    _SIG_CANT_MASK from blocked signals, like sigprocmask does.
+
+--- a/libpthread/sysdeps/mach/hurd/pt-sigstate.c
++++ b/libpthread/sysdeps/mach/hurd/pt-sigstate.c
+@@ -43,24 +43,27 @@ __pthread_sigstate (struct __pthread *thread, int how,
+     *oset = ss->blocked;
+ 
+   if (set)
+-    switch (how)
+-      {
+-      case SIG_BLOCK:
+-	ss->blocked |= *set;
+-	break;
+-
+-      case SIG_SETMASK:
+-	ss->blocked = *set;
+-	break;
+-
+-      case SIG_UNBLOCK:
+-	ss->blocked &= ~*set;
+-	break;
+-
+-      default:
+-	err = EINVAL;
+-	break;
+-      }
++    {
++      switch (how)
++	{
++	case SIG_BLOCK:
++	  ss->blocked |= *set;
++	  break;
++
++	case SIG_SETMASK:
++	  ss->blocked = *set;
++	  break;
++
++	case SIG_UNBLOCK:
++	  ss->blocked &= ~*set;
++	  break;
++
++	default:
++	  err = EINVAL;
++	  break;
++	}
++      ss->blocked &= ~_SIG_CANT_MASK;
++    }
+ 
+   if (! err && clear_pending)
+     __sigemptyset (&ss->pending);

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2016-01-02 13:53:21 UTC (rev 6853)
+++ glibc-package/trunk/debian/patches/series	2016-01-03 03:29:25 UTC (rev 6854)
@@ -168,6 +168,7 @@
 hurd-i386/local-mach_print.diff
 hurd-i386/cvs-hidden.diff
 hurd-i386/cvs-libpthread-api.diff
+hurd-i386/cvs-libpthread-sigstate.diff
 
 i386/local-biarch.diff
 i386/local-cmov.diff


Reply to: