summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2016-05-31 22:14:44 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2016-05-31 22:14:44 +0000
commit10f077b6cd7ffb9247efa24804dff53c15dfde7c (patch)
tree9cdab441e1ff9372e29af8235353c4daf8189ea7
parentb65a2be3b9446560ae2b6e43171ccf3dddcae409 (diff)
sys_o58_kill is no longer needed for compat.
ok guenther sthen
-rw-r--r--sys/kern/kern_pledge.c3
-rw-r--r--sys/kern/kern_sig.c59
2 files changed, 2 insertions, 60 deletions
diff --git a/sys/kern/kern_pledge.c b/sys/kern/kern_pledge.c
index 6ea4c3b10fa..7a16e258537 100644
--- a/sys/kern/kern_pledge.c
+++ b/sys/kern/kern_pledge.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_pledge.c,v 1.168 2016/05/31 22:12:26 deraadt Exp $ */
+/* $OpenBSD: kern_pledge.c,v 1.169 2016/05/31 22:14:43 deraadt Exp $ */
/*
* Copyright (c) 2015 Nicholas Marriott <nicm@openbsd.org>
@@ -230,7 +230,6 @@ const uint64_t pledge_syscalls[SYS_MAXSYSCALL] = {
* Can kill self with "stdio". Killing another pid
* requires "proc"
*/
- [SYS_o58_kill] = PLEDGE_STDIO,
[SYS_kill] = PLEDGE_STDIO,
/*
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index 23ead64a7e5..8778115ce39 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_sig.c,v 1.196 2016/03/29 08:46:08 mpi Exp $ */
+/* $OpenBSD: kern_sig.c,v 1.197 2016/05/31 22:14:43 deraadt Exp $ */
/* $NetBSD: kern_sig.c,v 1.54 1996/04/22 01:38:32 christos Exp $ */
/*
@@ -560,63 +560,6 @@ sys_sigaltstack(struct proc *p, void *v, register_t *retval)
}
int
-sys_o58_kill(struct proc *cp, void *v, register_t *retval)
-{
- struct sys_o58_kill_args /* {
- syscallarg(int) pid;
- syscallarg(int) signum;
- } */ *uap = v;
- struct proc *p;
- int pid = SCARG(uap, pid);
- int signum = SCARG(uap, signum);
- int error;
-
- if (pid <= THREAD_PID_OFFSET && (error = pledge_kill(cp, pid)) != 0)
- return (error);
- if (((u_int)signum) >= NSIG)
- return (EINVAL);
- if (pid > 0) {
- enum signal_type type = SPROCESS;
-
- /*
- * If the target pid is > THREAD_PID_OFFSET then this
- * must be a kill of another thread in the same process.
- * Otherwise, this is a process kill and the target must
- * be a main thread.
- */
- if (pid > THREAD_PID_OFFSET) {
- if ((p = pfind(pid - THREAD_PID_OFFSET)) == NULL)
- return (ESRCH);
- if (p->p_p != cp->p_p)
- return (ESRCH);
- type = STHREAD;
- } else {
- /* XXX use prfind() */
- if ((p = pfind(pid)) == NULL)
- return (ESRCH);
- if (p->p_flag & P_THREAD)
- return (ESRCH);
- if (!cansignal(cp, p->p_p, signum))
- return (EPERM);
- }
-
- /* kill single process or thread */
- if (signum)
- ptsignal(p, signum, type);
- return (0);
- }
- switch (pid) {
- case -1: /* broadcast signal */
- return (killpg1(cp, signum, 0, 1));
- case 0: /* signal own process group */
- return (killpg1(cp, signum, 0, 0));
- default: /* negative explicit process group */
- return (killpg1(cp, signum, -pid, 0));
- }
- /* NOTREACHED */
-}
-
-int
sys_kill(struct proc *cp, void *v, register_t *retval)
{
struct sys_kill_args /* {