changeset 11939:99d25c90b354

6935093 in a linux zone, /proc/pid/status shows incorrect signal bits
author Roger A. Faulkner <Roger.Faulkner@Sun.COM>
date Tue, 16 Mar 2010 14:28:56 -0700
parents 6f4775397a5e
children 98e0550abcac
files usr/src/uts/common/brand/lx/procfs/lx_prvnops.c
diffstat 1 files changed, 12 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c	Tue Mar 16 09:59:42 2010 -0700
+++ b/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c	Tue Mar 16 14:28:56 2010 -0700
@@ -922,33 +922,33 @@
 	sigemptyset(&ignore);
 	sigemptyset(&handle);
 
-	for (i = 1; i < MAXSIG; i++) {
+	for (i = 1; i < NSIG; i++) {
 		lx_sig = stol_signo[i];
 
-		if ((lx_sig > 0) && (lx_sig < MAXSIG)) {
+		if ((lx_sig > 0) && (lx_sig < LX_NSIG)) {
 			if (sigismember(&p->p_sig, i))
 				sigaddset(&current, lx_sig);
 
-			if (up->u_signal[i] == SIG_IGN)
+			if (up->u_signal[i - 1] == SIG_IGN)
 				sigaddset(&ignore, lx_sig);
-			else if (up->u_signal[i] != SIG_DFL)
+			else if (up->u_signal[i - 1] != SIG_DFL)
 				sigaddset(&handle, lx_sig);
 		}
 	}
 
 	lxpr_uiobuf_printf(uiobuf,
 	    "\n"
-	    "SigPnd:\t%08x%08x%08x\n"
-	    "SigBlk:\t%08x%08x%08x\n"
-	    "SigIgn:\t%08x%08x%08x\n"
-	    "SigCgt:\t%08x%08x%08x\n"
+	    "SigPnd:\t%08x%08x\n"
+	    "SigBlk:\t%08x%08x\n"
+	    "SigIgn:\t%08x%08x\n"
+	    "SigCgt:\t%08x%08x\n"
 	    "CapInh:\t%016x\n"
 	    "CapPrm:\t%016x\n"
 	    "CapEff:\t%016x\n",
-	    current.__sigbits[2], current.__sigbits[1], current.__sigbits[0],
-	    0, 0, 0, /* signals blocked on per thread basis */
-	    ignore.__sigbits[2], ignore.__sigbits[1], ignore.__sigbits[0],
-	    handle.__sigbits[2], handle.__sigbits[1], handle.__sigbits[0],
+	    current.__sigbits[1], current.__sigbits[0],
+	    0, 0, /* signals blocked on per thread basis */
+	    ignore.__sigbits[1], ignore.__sigbits[0],
+	    handle.__sigbits[1], handle.__sigbits[0],
 	    /* Can't do anything with linux capabilities */
 	    0,
 	    0,