if (put_user(regs->gpr[1], (unsigned long __user *)newsp)) 
if (put_user(regs->gpr[1], (u32 __user *)newsp)) 
static int handle_signal32(unsigned long sig, struct k_sigaction *ka,			    siginfo_t *info, sigset_t *oldset,			    struct pt_regs * regs, unsigned long newsp){	struct sigcontext32 __user *sc;	struct sigregs32 __user *frame;	unsigned long origsp = newsp;	/* Set up Signal Frame */	newsp -= sizeof(struct sigregs32);	frame = (struct sigregs32 __user *) newsp;	/* Put a sigcontext on the stack */	newsp -= sizeof(*sc);	sc = (struct sigcontext32 __user *) newsp;	/* create a stack frame for the caller of the handler */	newsp -= __SIGNAL_FRAMESIZE32;	if (!access_ok(VERIFY_WRITE, (void __user *) newsp, origsp - newsp))		goto badframe;#if _NSIG != 64#error "Please adjust handle_signal32()"#endif	if (__put_user((u32)(u64)ka->sa.sa_handler, &sc->handler)	    || __put_user(oldset->sig[0], &sc->oldmask)	    || __put_user((oldset->sig[0] >> 32), &sc->_unused[3])	    || __put_user((u32)(u64)frame, &sc->regs)	    || __put_user(sig, &sc->signal))		goto badframe;	if (vdso32_sigtramp && current->thread.vdso_base) {		if (save_user_regs(regs, &frame->mctx, 0))			goto badframe;		regs->link = current->thread.vdso_base + vdso32_sigtramp;	} else {		if (save_user_regs(regs, &frame->mctx, __NR_sigreturn))			goto badframe;		regs->link = (unsigned long) frame->mctx.tramp;	}	if (put_user(regs->gpr[1], (unsigned long __user *)newsp))		goto badframe;	regs->gpr[1] = (unsigned long) newsp;	regs->gpr[3] = sig;	regs->gpr[4] = (unsigned long) sc;	regs->nip = (unsigned long) ka->sa.sa_handler;	regs->trap = 0;	regs->result = 0;	if (test_thread_flag(TIF_SINGLESTEP))		ptrace_notify(SIGTRAP);	return 1;badframe:#if DEBUG_SIG	printk("badframe in handle_signal, regs=%p frame=%x newsp=%x\n",	       regs, frame, *newspp);#endif	force_sigsegv(sig, current);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/9747dd6fa98f2983f4dd09cd6dad1fa3d2a4c5f2/signal32.c/buggy/arch/ppc64/kernel/signal32.c