Messages in this thread |  | | | Date | Tue, 28 Apr 1998 12:08:43 -0400 (EDT) | | From | "C. Scott Ananian" <> | | Subject | Re: pty pairs in POXIX with devpts |
| |
On Tue, 28 Apr 1998 hpa@transmeta.com (H. Peter Anvin) wrote:
> Followup to: <E0yTvTU-0006eI-00@taurus.cus.cam.ac.uk> > By author: pjb1008@cam.ac.uk (Peter Benie) > In newsgroup: linux.dev.kernel > > > > What does it do if both /dev/ptmx and /dev/pty?? devices exist? > > > > Suppose a user runs a program that allocates a pty by scanning the > > /dev/pty?? devices and chowning the corresponding slave device when it > > manages to open a pty master. The program may terminate without > > cleaning up. (Let's say the user sent it a SIGQUIT.) The master and > > slave sides of the pty are closed, so the pty can be allocated again, > > but the owner of the slave device remains as the user who started the > > program. > > > > Now suppose another user runs a program that allocates a pty using > > /dev/ptmx and /dev/pts/??. There's a good chance that it will get the > > pty from the program that just died. Now the pty slave is available > > twice - once to the correct user in /dev/pts, and once to somebody > > else as /dev/tty??. > > > > To make the device safe, you still have to use vhangup(), but now you > > have to locate the corresponding /dev/tty?? entry and chown it, even > > though you are using SysV-style pty allocation. > > > > IMO, it would be sensible for slave devices in /dev/pts to have a > > different major number so that the two allocation schemes were better > > separated from each other. > > > > This is a very good point. Obviously you can't allocate it twice, but > there is nastiness about having the two allocated from the same pool. > One possibility is to remove the restriction that you need to have > used /dev/ptmx in order for the device node to exist in /dev/pts, and > make all the /dev/tty?? entries symlinks to /dev/pts. Does anyone > know if that solution would work properly? I have a nasty feeling it > wouldn't.
We dealt with this with devfs. IIRC, libc 5.X doesn't like symlinks to ttys. glibc might handle this better, I don't recall. Richard Gooch patched libc to work around this problem; I've cc'ed this message to him for his comments. --Scott @ @ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-oOO-(_)-OOo-=-=-=-=-= C. Scott Ananian: cananian@lcs.mit.edu / Declare the Truth boldly and Laboratory for Computer Science/Crypto / without hindrance. Massachusetts Institute of Technology /META-PARRESIAS AKOLUTOS:Acts 28:31 -.-. .-.. .. ..-. ..-. --- .-. -.. ... -.-. --- - - .- -. .- -. .. .- -. PGP key available via finger and from http://www.pdos.lcs.mit.edu/~cananian
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu
|  |