kill syscall check uid
This commit is contained in:
@@ -61,11 +61,14 @@ SYSCALL_HANDLED(97, getrlimit)
|
||||
SYSCALL_HANDLED(101, ptrace)
|
||||
SYSCALL_DELEGATED(102, getuid)
|
||||
SYSCALL_DELEGATED(104, getgid)
|
||||
SYSCALL_HANDLED(105, setuid)
|
||||
SYSCALL_DELEGATED(107, geteuid)
|
||||
SYSCALL_DELEGATED(108, getegid)
|
||||
SYSCALL_HANDLED(109, setpgid)
|
||||
SYSCALL_HANDLED(110, getppid)
|
||||
SYSCALL_DELEGATED(111, getpgrp)
|
||||
SYSCALL_HANDLED(113, setreuid)
|
||||
SYSCALL_HANDLED(117, setresuid)
|
||||
SYSCALL_HANDLED(127, rt_sigpending)
|
||||
SYSCALL_HANDLED(128, rt_sigtimedwait)
|
||||
SYSCALL_HANDLED(129, rt_sigqueueinfo)
|
||||
|
||||
@@ -932,6 +932,17 @@ do_kill(int pid, int tid, int sig, siginfo_t *info, int ptracecont)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(sig != SIGCONT &&
|
||||
proc->ftn->euid != 0 &&
|
||||
proc->ftn->ruid != tproc->ftn->ruid &&
|
||||
proc->ftn->euid != tproc->ftn->ruid &&
|
||||
proc->ftn->ruid != tproc->ftn->suid &&
|
||||
proc->ftn->euid != tproc->ftn->suid){
|
||||
ihk_mc_spinlock_unlock_noirq(savelock);
|
||||
cpu_restore_interrupt(irqstate);
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
doint = 0;
|
||||
if(tid == -1){
|
||||
ihk_mc_spinlock_lock_noirq(&tproc->sigshared->lock);
|
||||
|
||||
Reference in New Issue
Block a user