[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#211047: libc6 - ttyname fails with more than 21 allocated pts



Package: libc6
Version: 2.3.2-7
Severity: important

ttyname failes on devfs systems if there are more than 21 allocated pts
and the readlink call failes (suid/sgid binary).

trace with 18 pts:
readlink("/proc/self/fd/0", 0x8049628, 4095) = -1 EACCES (Permission denied)
fstat64(0, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 5), ...}) = 0
stat64("/dev/pts", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
open("/dev/null", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 ENOTDIR (Not a directory)
open("/dev/pts", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 20 entries */, 1024)   = 480
getdents64(3, /* 0 entries */, 1024)    = 0
close(3)                                = 0
stat64("/dev/vc", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
open("/dev/vc", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 42 entries */, 1024)   = 1008
stat64("/dev/vc/5", {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 5), ...}) = 0
close(3)                                = 0

trace with 26 pts:
readlink("/proc/self/fd/0", 0x8049628, 4095) = -1 EACCES (Permission denied)
fstat64(0, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 5), ...}) = 0
stat64("/dev/pts", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
open("/dev/null", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 ENOTDIR (Not a directory)
open("/dev/pts", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 29 entries */, 1024)   = 696
stat64("/dev/pts/22", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 22), ...}) = 0
getdents64(3, /* 0 entries */, 1024)    = 0
close(3)                                = 0
stat64("/dev/vc", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
open("/dev/vc", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 42 entries */, 1024)   = 1008
stat64("/dev/pts5", 0xbffff7a0)         = -1 ENOENT (No such file or directory)
getdents64(3, /* 24 entries */, 1024)   = 576
getdents64(3, /* 0 entries */, 1024)    = 0
close(3)                                = 0
stat64("/dev/tts", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
open("/dev/tts", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 4 entries */, 1024)    = 96
getdents64(3, /* 0 entries */, 1024)    = 0
close(3)                                = 0
open("/dev", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 39 entries */, 1024)   = 1016
getdents64(3, /* 22 entries */, 1024)   = 632
getdents64(3, /* 0 entries */, 1024)    = 0
close(3)                                = 0
open("/dev", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 39 entries */, 1024)   = 1016
stat64("/dev/..", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/dev/.", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat64("/dev/.devfsd", {st_mode=S_IFCHR|0600, st_rdev=makedev(8, 0), ...}) = 0
stat64("/dev/cpu", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat64("/dev/shm", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat64("/dev/mem", {st_mode=S_IFCHR|0640, st_rdev=makedev(1, 1), ...}) = 0
[...]


-- 
Kirk to Enterprise -- beam down yeoman Rand and a six-pack.

Attachment: signature.asc
Description: Digital signature


Reply to: