[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] pty/tty functions for BSD too
From: |
Todd T. Fries |
Subject: |
Re: [Qemu-devel] pty/tty functions for BSD too |
Date: |
Tue, 19 Aug 2008 07:35:45 -0500 |
User-agent: |
Mutt/1.5.17 (2007-11-01) |
>From the OpenBSD man page...
DESCRIPTION
The openpty(), login_tty(), and forkpty() functions perform manipulations
on ttys and pseudo-ttys.
The openpty() function finds an available pseudo-tty and returns file de-
scriptors for the master and slave in amaster and aslave. If name is
non-null, the filename of the slave is returned in name (a string of at
least 16 characters). If termp is non-null, the terminal parameters of
the slave will be set to the values in termp. If winp is non-null, the
window size of the slave will be set to the values in winp.
The openpty() function works in the following way: first it attempts to
allocate the pseudo-tty through the /dev/ptm device (see pty(4) for de-
tails) and if that fails it searches for a free pseudo-tty by iterating
through all existing pseudo-tty devices in /dev. When a free pseudo-tty
is found, its ownership is changed to the UID of the caller, permissions
are set to correct values, and all earlier uses of that device are re-
voked (see revoke(2) for details). The first method can work for any us-
er, the second method requires super-user privileges in most cases.
In OpenBSD, it's a pretty safe bet that 16chars is overkill. The tty and/or
pty name will never be longer than /dev/?ty??.
Thanks,
--
Todd Fries .. address@hidden
_____________________________________________
| \ 1.636.410.0632 (voice)
| Free Daemon Consulting, LLC \ 1.405.227.9094 (voice)
| http://FreeDaemonConsulting.com \ 1.866.792.3418 (FAX)
| "..in support of free software solutions." \ 250797 (FWD)
| \
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
37E7 D3EB 74D0 8D66 A68D B866 0326 204E 3F42 004A
http://todd.fries.net/pgp.txt
Penned by Daniel P. Berrange on 20080818 17:26.18, we have:
| On Mon, Aug 18, 2008 at 07:16:36PM +0300, Blue Swirl wrote:
| > On 8/18/08, Samuel Thibault <address@hidden> wrote:
| > > Anthony Liguori, le Mon 18 Aug 2008 09:06:41 -0500, a ?crit :
| > >
| > > > Samuel Thibault wrote:
| > > > >In Xen, pty/tty functions are enabled for BSD too, shouldn't we enable
| > > > >them in upstream qemu too, as patched below?
| > > > >
| > > >
| > > > And you're sure that these functions compile/work on NetBSD/OpenBSD?
| > >
| > >
| > > The defines are explicit in Xen, so I guess somebody tested it. I
| > > haven't myself. I wonder why there is no FreeBSD however.
| >
| > The patch does not work on OpenBSD, because while openpty() is
| > available, ptsname() isn't.
| >
| > I tested the attached version on OpenBSD and Linux, pty name is
| > printed correctly.
|
| Passing a non-NULL value to openpty()'s name parameter is not safe
|
| [quote openpty(1)]
| BUGS
| Nobody knows how much space should be reserved for name. So, call-
| ing openpty() or forkpty() with non-NULL name may not be secure.
| [/quote]
|
| If BSD has no other way to determine the PTY name, then at least it
| should be conditionalized so that systems with ptsname() use it, only
| falling back to using the 'name' arg to openpty() for OS lacking ptsname
|
| Regards,
| Daniel
| --
| |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
|
- Re: [Qemu-devel] pty/tty functions for BSD too, (continued)
- Re: [Qemu-devel] pty/tty functions for BSD too, Blue Swirl, 2008/08/18
- Re: [Qemu-devel] pty/tty functions for BSD too, Blue Swirl, 2008/08/18
- Re: [Qemu-devel] pty/tty functions for BSD too, Daniel P. Berrange, 2008/08/18
- Re: [Qemu-devel] pty/tty functions for BSD too, Jamie Lokier, 2008/08/18
- Re: [Qemu-devel] pty/tty functions for BSD too, Bernhard Reutner-Fischer, 2008/08/19
- Re: [Qemu-devel] pty/tty functions for BSD too, François Revol, 2008/08/19
- Re: [Qemu-devel] pty/tty functions for BSD too, Bernhard Reutner-Fischer, 2008/08/19
- Re: [Qemu-devel] pty/tty functions for BSD too, Samuel Thibault, 2008/08/19
- Re: [Qemu-devel] pty/tty functions for BSD too, Klaus Heinz, 2008/08/19
- Re: [Qemu-devel] pty/tty functions for BSD too, Blue Swirl, 2008/08/21
- Re: [Qemu-devel] pty/tty functions for BSD too,
Todd T. Fries <=