linux ttyname and ttyname_r: do not return wrong results
commit15e9a4f378c8607c2ae1aa465436af4321db0e23
authorChristian Brauner <christian.brauner@canonical.com>
Fri, 27 Jan 2017 14:59:59 +0000 (27 15:59 +0100)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 19 Mar 2017 17:36:13 +0000 (19 17:36 +0000)
tree021ac3c62fe588a8745fcdf09d29392a837759e0
parent345118d7f5bc42c8d4c3a8ef70b9b709fa57e93d
linux ttyname and ttyname_r: do not return wrong results

If a link (say /proc/self/fd/0) pointing to a device, say /dev/pts/2, in a
parent mount namespace is passed to ttyname, and a /dev/pts/2 exists (in a
different devpts) in the current namespace, then it returns /dev/pts/2.
But /dev/pts/2 is NOT the current tty, it is a different file and device.

Detect this case and return ENODEV.  Userspace can choose to take this as a hint
that the fd points to a tty device but to act on the fd rather than the link.

Signed-off-by: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
ChangeLog
sysdeps/unix/sysv/linux/ttyname.c
sysdeps/unix/sysv/linux/ttyname.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/ttyname_r.c