projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
From John Dyson - fix for bug in kern_physio where buffers would be
[unix-history]
/
sys
/
kern
/
tty_tty.c
diff --git
a/sys/kern/tty_tty.c
b/sys/kern/tty_tty.c
index
c678491
..
4bf46ee
100644
(file)
--- a/
sys/kern/tty_tty.c
+++ b/
sys/kern/tty_tty.c
@@
-31,7
+31,7
@@
* SUCH DAMAGE.
*
* from: @(#)tty_tty.c 7.15 (Berkeley) 5/28/91
* SUCH DAMAGE.
*
* from: @(#)tty_tty.c 7.15 (Berkeley) 5/28/91
- * $Id$
+ * $Id
: tty_tty.c,v 1.2 1993/10/16 15:25:05 rgrimes Exp
$
*/
/*
*/
/*
@@
-49,6
+49,7
@@
#define cttyvp(p) ((p)->p_flag&SCTTY ? (p)->p_session->s_ttyvp : NULL)
/*ARGSUSED*/
#define cttyvp(p) ((p)->p_flag&SCTTY ? (p)->p_session->s_ttyvp : NULL)
/*ARGSUSED*/
+int
cttyopen(dev, flag, mode, p)
dev_t dev;
int flag, mode;
cttyopen(dev, flag, mode, p)
dev_t dev;
int flag, mode;
@@
-69,9
+70,11
@@
cttyopen(dev, flag, mode, p)
}
/*ARGSUSED*/
}
/*ARGSUSED*/
+int
cttyread(dev, uio, flag)
dev_t dev;
struct uio *uio;
cttyread(dev, uio, flag)
dev_t dev;
struct uio *uio;
+ int flag;
{
register struct vnode *ttyvp = cttyvp(uio->uio_procp);
int error;
{
register struct vnode *ttyvp = cttyvp(uio->uio_procp);
int error;
@@
-85,9
+88,11
@@
cttyread(dev, uio, flag)
}
/*ARGSUSED*/
}
/*ARGSUSED*/
+int
cttywrite(dev, uio, flag)
dev_t dev;
struct uio *uio;
cttywrite(dev, uio, flag)
dev_t dev;
struct uio *uio;
+ int flag;
{
register struct vnode *ttyvp = cttyvp(uio->uio_procp);
int error;
{
register struct vnode *ttyvp = cttyvp(uio->uio_procp);
int error;
@@
-101,6
+106,7
@@
cttywrite(dev, uio, flag)
}
/*ARGSUSED*/
}
/*ARGSUSED*/
+int
cttyioctl(dev, cmd, addr, flag, p)
dev_t dev;
int cmd;
cttyioctl(dev, cmd, addr, flag, p)
dev_t dev;
int cmd;
@@
-112,7
+118,9
@@
cttyioctl(dev, cmd, addr, flag, p)
if (ttyvp == NULL)
return (EIO);
if (ttyvp == NULL)
return (EIO);
- if (cmd == TIOCNOTTY) {
+ if (cmd == TIOCSCTTY) /* don't allow controlling tty to be set */
+ return EINVAL; /* to controlling tty - infinite recursion */
+ else if (cmd == TIOCNOTTY) {
if (!SESS_LEADER(p)) {
p->p_flag &= ~SCTTY;
return (0);
if (!SESS_LEADER(p)) {
p->p_flag &= ~SCTTY;
return (0);
@@
-123,6
+131,7
@@
cttyioctl(dev, cmd, addr, flag, p)
}
/*ARGSUSED*/
}
/*ARGSUSED*/
+int
cttyselect(dev, flag, p)
dev_t dev;
int flag;
cttyselect(dev, flag, p)
dev_t dev;
int flag;