public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* Error handling bug in fsys_rt_sigprocmask
@ 2004-05-15 20:57 Andreas Schwab
  2004-05-19 22:01 ` David Mosberger
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Andreas Schwab @ 2004-05-15 20:57 UTC (permalink / raw)
  To: linux-ia64

When sigprocmask is called with an invalid first argument it still
modifies the signal mask of the process.

Andreas.

--- linux-2.6.5/arch/ia64/kernel/fsys.S.~1~	2004-04-04 05:38:28.000000000 +0200
+++ linux-2.6.5/arch/ia64/kernel/fsys.S	2004-05-14 15:43:11.456175248 +0200
@@ -444,6 +444,9 @@ EX(.fail_efault, ld8 r14=[r33])			// r14
 (p7)	cmp.ne.or.andcm p6,p7=r18,r0		// p6/p7 <- signal pending
 	mov r19=0					// i must not leak kernel bits...
 (p6)	br.cond.dpnt.many .sig_pending
+
+	cmp.ne p9,p0=r8,r0			// check for bad HOW value
+(p9)	br.cond.spnt.few 2f
 	;;
 
 1:	ld4 r17=[r9]				// r17 <- current->thread_info->flags
@@ -458,11 +461,11 @@ EX(.fail_efault, ld8 r14=[r33])			// r14
 	cmp.ne p6,p0=r17,r14			// update failed?
 (p6)	br.cond.spnt.few 1b			// yes -> retry
 
+2:
 #ifdef CONFIG_SMP
 	st4.rel [r31]=r0			// release the lock
 #endif
 	ssm psr.i
-	cmp.ne p9,p0=r8,r0			// check for bad HOW value
 	;;
 
 	srlz.d					// ensure psr.i is set again

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-05-20  0:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-05-15 20:57 Error handling bug in fsys_rt_sigprocmask Andreas Schwab
2004-05-19 22:01 ` David Mosberger
2004-05-19 22:30 ` Andreas Schwab
2004-05-19 22:49 ` David Mosberger
2004-05-20  0:17 ` David Mosberger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox