|
@@ -540,41 +540,6 @@ int cap_task_setnice (struct task_struct *p, int nice)
|
|
|
return cap_safe_nice(p);
|
|
|
}
|
|
|
|
|
|
-int cap_task_kill(struct task_struct *p, struct siginfo *info,
|
|
|
- int sig, u32 secid)
|
|
|
-{
|
|
|
- if (info != SEND_SIG_NOINFO && (is_si_special(info) || SI_FROMKERNEL(info)))
|
|
|
- return 0;
|
|
|
-
|
|
|
- /*
|
|
|
- * Running a setuid root program raises your capabilities.
|
|
|
- * Killing your own setuid root processes was previously
|
|
|
- * allowed.
|
|
|
- * We must preserve legacy signal behavior in this case.
|
|
|
- */
|
|
|
- if (p->uid == current->uid)
|
|
|
- return 0;
|
|
|
-
|
|
|
- /* sigcont is permitted within same session */
|
|
|
- if (sig == SIGCONT && (task_session_nr(current) == task_session_nr(p)))
|
|
|
- return 0;
|
|
|
-
|
|
|
- if (secid)
|
|
|
- /*
|
|
|
- * Signal sent as a particular user.
|
|
|
- * Capabilities are ignored. May be wrong, but it's the
|
|
|
- * only thing we can do at the moment.
|
|
|
- * Used only by usb drivers?
|
|
|
- */
|
|
|
- return 0;
|
|
|
- if (cap_issubset(p->cap_permitted, current->cap_permitted))
|
|
|
- return 0;
|
|
|
- if (capable(CAP_KILL))
|
|
|
- return 0;
|
|
|
-
|
|
|
- return -EPERM;
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* called from kernel/sys.c for prctl(PR_CABSET_DROP)
|
|
|
* done without task_capability_lock() because it introduces
|
|
@@ -605,11 +570,6 @@ int cap_task_setnice (struct task_struct *p, int nice)
|
|
|
{
|
|
|
return 0;
|
|
|
}
|
|
|
-int cap_task_kill(struct task_struct *p, struct siginfo *info,
|
|
|
- int sig, u32 secid)
|
|
|
-{
|
|
|
- return 0;
|
|
|
-}
|
|
|
#endif
|
|
|
|
|
|
void cap_task_reparent_to_init (struct task_struct *p)
|