change to check sequence of kill syscall, check sig num zero after uid checking

This commit is contained in:
Tomoki Shirasawa
2015-03-18 12:59:05 +09:00
parent 8934eb91a4
commit d53865ac5f

View File

@@ -926,11 +926,6 @@ do_kill(int pid, int tid, int sig, siginfo_t *info, int ptracecont)
cpu_restore_interrupt(irqstate); cpu_restore_interrupt(irqstate);
return -ESRCH; return -ESRCH;
} }
if(sig == 0){
ihk_mc_spinlock_unlock_noirq(savelock);
cpu_restore_interrupt(irqstate);
return 0;
}
if(sig != SIGCONT && if(sig != SIGCONT &&
proc->ftn->euid != 0 && proc->ftn->euid != 0 &&
@@ -943,6 +938,12 @@ do_kill(int pid, int tid, int sig, siginfo_t *info, int ptracecont)
return -EPERM; return -EPERM;
} }
if(sig == 0){
ihk_mc_spinlock_unlock_noirq(savelock);
cpu_restore_interrupt(irqstate);
return 0;
}
doint = 0; doint = 0;
if(tid == -1){ if(tid == -1){
ihk_mc_spinlock_lock_noirq(&tproc->sigshared->lock); ihk_mc_spinlock_lock_noirq(&tproc->sigshared->lock);