diff options
author | ed <ed@FreeBSD.org> | 2009-06-20 14:50:32 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2009-06-20 14:50:32 +0000 |
commit | 63a4c7f5226e69853f4c0d15a1c6d0e35ea5523e (patch) | |
tree | f0fd4ecb52c9718823a0b05d1efd9e87c9c6be2c /sys/kern/tty.c | |
parent | 51b981d72bb852d8a1bf8627132b440a55357373 (diff) | |
download | FreeBSD-src-63a4c7f5226e69853f4c0d15a1c6d0e35ea5523e.zip FreeBSD-src-63a4c7f5226e69853f4c0d15a1c6d0e35ea5523e.tar.gz |
Improve nested jail awareness of devfs by handling credentials.
Now that we start to use credentials on character devices more often
(because of MPSAFE TTY), move the prison-checks that are in place in the
TTY code into devfs.
Instead of strictly comparing the prisons, use the more common
prison_check() function to compare credentials. This means that
pseudo-terminals are only visible in devfs by processes within the same
jail and parent jails.
Even though regular users in parent jails can now interact with
pseudo-terminals from child jails, this seems to be the right approach.
These processes are also capable of interacting with the jailed
processes anyway, through signals for example.
Reviewed by: kib, rwatson (older version)
Diffstat (limited to 'sys/kern/tty.c')
-rw-r--r-- | sys/kern/tty.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c index 2603cac..61c8785 100644 --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -219,13 +219,6 @@ ttydev_open(struct cdev *dev, int oflags, int devtype, struct thread *td) struct tty *tp = dev->si_drv1; int error = 0; - /* Disallow access when the TTY belongs to a different prison. */ - if (dev->si_cred != NULL && - dev->si_cred->cr_prison != td->td_ucred->cr_prison && - priv_check(td, PRIV_TTY_PRISON)) { - return (EPERM); - } - tty_lock(tp); if (tty_gone(tp)) { /* Device is already gone. */ |