"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "arch/sparc/kernel/signal_32.c" between
linux-3.16.62.tar.xz and linux-3.16.63.tar.xz

About: The full source of the Linux kernel 3.16.x (longterm stable)

signal_32.c  (linux-3.16.62.tar.xz):signal_32.c  (linux-3.16.63.tar.xz)
skipping to change at line 92 skipping to change at line 92
int err; int err;
/* Always make any pending restarted system calls return -EINTR */ /* Always make any pending restarted system calls return -EINTR */
current_thread_info()->restart_block.fn = do_no_restart_syscall; current_thread_info()->restart_block.fn = do_no_restart_syscall;
synchronize_user_stack(); synchronize_user_stack();
sf = (struct signal_frame __user *) regs->u_regs[UREG_FP]; sf = (struct signal_frame __user *) regs->u_regs[UREG_FP];
/* 1. Make sure we are not getting garbage from the user */ /* 1. Make sure we are not getting garbage from the user */
if (!invalid_frame_pointer(sf, sizeof(*sf))) if (invalid_frame_pointer(sf, sizeof(*sf)))
goto segv_and_exit; goto segv_and_exit;
if (get_user(ufp, &sf->info.si_regs.u_regs[UREG_FP])) if (get_user(ufp, &sf->info.si_regs.u_regs[UREG_FP]))
goto segv_and_exit; goto segv_and_exit;
if (ufp & 0x7) if (ufp & 0x7)
goto segv_and_exit; goto segv_and_exit;
err = __get_user(pc, &sf->info.si_regs.pc); err = __get_user(pc, &sf->info.si_regs.pc);
err |= __get_user(npc, &sf->info.si_regs.npc); err |= __get_user(npc, &sf->info.si_regs.npc);
skipping to change at line 153 skipping to change at line 153
{ {
struct rt_signal_frame __user *sf; struct rt_signal_frame __user *sf;
unsigned int psr, pc, npc, ufp; unsigned int psr, pc, npc, ufp;
__siginfo_fpu_t __user *fpu_save; __siginfo_fpu_t __user *fpu_save;
__siginfo_rwin_t __user *rwin_save; __siginfo_rwin_t __user *rwin_save;
sigset_t set; sigset_t set;
int err; int err;
synchronize_user_stack(); synchronize_user_stack();
sf = (struct rt_signal_frame __user *) regs->u_regs[UREG_FP]; sf = (struct rt_signal_frame __user *) regs->u_regs[UREG_FP];
if (!invalid_frame_pointer(sf, sizeof(*sf))) if (invalid_frame_pointer(sf, sizeof(*sf)))
goto segv; goto segv;
if (get_user(ufp, &sf->regs.u_regs[UREG_FP])) if (get_user(ufp, &sf->regs.u_regs[UREG_FP]))
goto segv; goto segv;
if (ufp & 0x7) if (ufp & 0x7)
goto segv; goto segv;
err = __get_user(pc, &sf->regs.pc); err = __get_user(pc, &sf->regs.pc);
err |= __get_user(npc, &sf->regs.npc); err |= __get_user(npc, &sf->regs.npc);
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)