mirror of
https://github.com/opnsense/src.git
synced 2026-02-22 01:11:30 -05:00
With the new kernel dev_t conversions done at release 4.X,
it becomes possible to trap in ptsstop() in kern/tty_pty.c
if the slave side has never been opened during the life of a kernel.
What happens is that calls to ttyflush() done from ptyioctl() for the
controlling side end up calling ptsstop() [via (*tp->t_stop)(tp, <X>)]
which evaluates the following:
struct pt_ioctl *pti = tp->t_dev->si_drv1;
In order for tp->t_dev to be set, the slave device must first be
opened in ttyopen() [kern/tty.c].
It appears that the only problem is calls to (*tp->t_stop)(tp, <n>),
so this could also happen with other ioctls initiated by the
controlling side before the slave has been opened.
PR: 27698
Submitted by: David Bein bein@netapp.com
MFC after: 6 days
This commit is contained in:
parent
dfd79cda05
commit
c01a009dc5
1 changed files with 1 additions and 0 deletions
|
|
@ -156,6 +156,7 @@ ptyinit(dev_t devc)
|
|||
|
||||
devs->si_drv1 = devc->si_drv1 = pt;
|
||||
devs->si_tty = devc->si_tty = &pt->pt_tty;
|
||||
pt->pt_tty.t_dev = devs;
|
||||
ttyregister(&pt->pt_tty);
|
||||
return (devc);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue