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

Bug#208428: The adduser script also stalls if /etc/group contains long lines



Hello,
=-==-=

this seems to be a related problem. After upgrading to libc6 2.3.2-5 the
adduser script stalled every time I tried to add a new user. After doing
strace this came out:

[snip]

open("/etc/group", O_RDONLY)            = 3
fcntl64(3, F_GETFD)                     = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
_llseek(3, 0, [0], SEEK_CUR)            = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=9989, ...}) = 0
mmap2(NULL, 9989, PROT_READ, MAP_SHARED, 3, 0) = 0x22283000
_llseek(3, 9989, [9989], SEEK_SET)      = 0
_llseek(3, 573, [573], SEEK_SET)        = 0
munmap(0x22283000, 9989)                = 0
close(3)                                = 0
open("/etc/group", O_RDONLY)            = 3
fcntl64(3, F_GETFD)                     = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
_llseek(3, 0, [0], SEEK_CUR)            = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=9989, ...}) = 0
mmap2(NULL, 9989, PROT_READ, MAP_SHARED, 3, 0) = 0x22283000
_llseek(3, 9989, [9989], SEEK_SET)      = 0
_llseek(3, 573, [573], SEEK_SET)        = 0
munmap(0x22283000, 9989)                = 0
close(3)                                = 0

[snip]

This loop repeats itself ad infinitum. Unfortunately I don't know which
libc6 function went crazy here.

It is confirmed that this problem appears also in earlier patch levels of
libc6 2.3.2 (the 2.3.2-2 has the same bug). Contrary to what has been said
here, it doesn't help to remove the "compat" keyword from the
/etc/nsswitch.conf file, the problem remains. But it definitely appears 
if some lines in /etc/group are unusually long. After removing these lines
from /etc/group the problem doesn't appear (and the adduser script works
fine).

If there is any information that can be useful to you don't hesitate to
contact me! Thanks!

Regards,
Peter



Reply to: