From: Jian Xiao <j...@linux.vnet.ibm.com>

This patch is to correct the manipulation of signal masks when
installing signal handlers for lxc-init. 

Signed-off-by: Jian Xiao <j...@linux.vnet.ibm.com>
Signed-off-by: Greg Kurz <gk...@fr.ibm.com>
---
 src/lxc/lxc_init.c |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/lxc/lxc_init.c b/src/lxc/lxc_init.c
index a534b51..0353dbc 100644
--- a/src/lxc/lxc_init.c
+++ b/src/lxc/lxc_init.c
@@ -95,15 +95,31 @@ int main(int argc, char *argv[])
         * signal handler and to fork
         */
        sigfillset(&mask);
+       sigdelset(&mask, SIGILL);
+       sigdelset(&mask, SIGSEGV);
+       sigdelset(&mask, SIGBUS);
        sigprocmask(SIG_SETMASK, &mask, &omask);
 
        for (i = 1; i < NSIG; i++) {
                struct sigaction act;
 
+               /* Exclude some signals: ILL, SEGV and BUS are likely to
+                * reveal a bug and we want a core. STOP and KILL cannot be
+                * handled anyway: they're here for documentation.
+                */
+               if (i == SIGILL ||
+                   i == SIGSEGV ||
+                   i == SIGBUS ||
+                   i == SIGSTOP ||
+                   i == SIGKILL)
+                       continue;               
+
                sigfillset(&act.sa_mask);
-               sigdelset(&mask, SIGILL);
-               sigdelset(&mask, SIGSEGV);
-               sigdelset(&mask, SIGBUS);
+               sigdelset(&act.sa_mask, SIGILL);
+               sigdelset(&act.sa_mask, SIGSEGV);
+               sigdelset(&act.sa_mask, SIGBUS);
+               sigdelset(&act.sa_mask, SIGSTOP);
+               sigdelset(&act.sa_mask, SIGKILL);
                act.sa_flags = 0;
                act.sa_handler = interrupt_handler;
                sigaction(i, &act, NULL);
-- 
1.7.1


------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to