From: Vincent Hanquez Hi, the following patch: - correct the err variable tested twice when _NSIG_WORDS == 1 (unlikely to happen, but ..) - remove some |= in favor of = because we don't need to 'pack' err Signed-off-by: Vincent Hanquez Acked-by: Ingo Molnar Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/kernel/signal.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff -puN arch/i386/kernel/signal.c~arch-i386-kernel-signalc-fix-err-test-twice arch/i386/kernel/signal.c --- 25/arch/i386/kernel/signal.c~arch-i386-kernel-signalc-fix-err-test-twice Wed Jan 19 15:33:13 2005 +++ 25-akpm/arch/i386/kernel/signal.c Wed Jan 19 15:33:13 2005 @@ -365,20 +365,20 @@ static void setup_frame(int sig, struct ? current_thread_info()->exec_domain->signal_invmap[sig] : sig; - err |= __put_user(usig, &frame->sig); + err = __put_user(usig, &frame->sig); if (err) goto give_sigsegv; - err |= setup_sigcontext(&frame->sc, &frame->fpstate, regs, set->sig[0]); + err = setup_sigcontext(&frame->sc, &frame->fpstate, regs, set->sig[0]); if (err) goto give_sigsegv; if (_NSIG_WORDS > 1) { - err |= __copy_to_user(&frame->extramask, &set->sig[1], + err = __copy_to_user(&frame->extramask, &set->sig[1], sizeof(frame->extramask)); + if (err) + goto give_sigsegv; } - if (err) - goto give_sigsegv; restorer = &__kernel_sigreturn; if (ka->sa.sa_flags & SA_RESTORER) _