diff options
| author | 1997-08-31 20:42:01 +0000 | |
|---|---|---|
| committer | 1997-08-31 20:42:01 +0000 | |
| commit | 31e15491b0ac1938de22018ee666cadb4f082315 (patch) | |
| tree | 580db7b1abf7a7be9250a8b15b6b2dcf8c63308f /sys/kern/sys_generic.c | |
| parent | only check for ftp bounce in tcp, duh. for nonreserved ports, do not (diff) | |
| download | wireguard-openbsd-31e15491b0ac1938de22018ee666cadb4f082315.tar.xz wireguard-openbsd-31e15491b0ac1938de22018ee666cadb4f082315.zip | |
for non-tty TIOCSPGRP/F_SETOWN/FIOSETOWN pgid setting calls, store uid
and euid as well, then deliver them using new csignal() interface
which ensures that pgid setting process is permitted to signal the
pgid process(es). Thanks to newsham@aloha.net for extensive help and
discussion.
Diffstat (limited to 'sys/kern/sys_generic.c')
| -rw-r--r-- | sys/kern/sys_generic.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index 68953baf9d6..ef811b417ba 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sys_generic.c,v 1.7 1997/01/27 23:21:13 deraadt Exp $ */ +/* $OpenBSD: sys_generic.c,v 1.8 1997/08/31 20:42:21 deraadt Exp $ */ /* $NetBSD: sys_generic.c,v 1.24 1996/03/29 00:25:32 cgd Exp $ */ /* @@ -480,7 +480,11 @@ sys_ioctl(p, v, retval) case FIOSETOWN: tmp = *(int *)data; if (fp->f_type == DTYPE_SOCKET) { - ((struct socket *)fp->f_data)->so_pgid = tmp; + struct socket *so = (struct socket *)fp->f_data; + + so->so_pgid = tmp; + so->so_siguid = p->p_cred->p_ruid; + so->so_sigeuid = p->p_ucred->cr_uid; error = 0; break; } |
