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

Bug#493016: libc6: ldd doesn't work with ACLs



$   echo "test -r ./pdficon" | strace /bin/sh -x
execve("/bin/sh", ["/bin/sh", "-x"], [/* 19 vars */]) = 0
uname({sys="Linux", node="varaha", ...}) = 0
brk(0)                                  = 0x80f3000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7f70000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=20607, ...}) = 0
mmap2(NULL, 20607, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f6a000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/lib/libncurses.so.5", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\345"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=263040, ...}) = 0
mmap2(NULL, 264196, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0xb7f29000
mmap2(0xb7f61000, 32768, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x38) = 0xb7f61000
mmap2(0xb7f69000, 2052, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f69000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\f\0"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9592, ...}) = 0
mmap2(NULL, 12404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xb7f25000
mmap2(0xb7f27000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f27000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1241392, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7f24000
mmap2(NULL, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0xb7df3000
mmap2(0xb7f1a000, 28672, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0xb7f1a000
mmap2(0xb7f21000, 10396, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f21000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7df2000
mprotect(0xb7f1a000, 20480, PROT_READ)  = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7df26c0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7f6a000, 20607)               = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3
close(3)                                = 0
brk(0)                                  = 0x80f3000
brk(0x80f4000)                          = 0x80f4000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1209120, ...}) = 0
mmap2(NULL, 1209120, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7cca000
close(3)                                = 0
brk(0x80f5000)                          = 0x80f5000
brk(0x80f6000)                          = 0x80f6000
getuid32()                              = 1000
getgid32()                              = 1000
geteuid32()                             = 1000
getegid32()                             = 1000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
time(NULL)                              = 1217982213
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfe1fe38) = -1 EINVAL (Invalid
argument)
brk(0x80f7000)                          = 0x80f7000
open("/etc/mtab", O_RDONLY)             = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=691, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7f6f000
read(3, "/dev/mapper/varaha-root / ext3 r"..., 4096) = 691
close(3)                                = 0
munmap(0xb7f6f000, 4096)                = 0
open("/proc/meminfo", O_RDONLY)         = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7f6f000
read(3, "MemTotal:      2075444 kB\nMemFre"..., 1024) = 676
close(3)                                = 0
munmap(0xb7f6f000, 4096)                = 0
brk(0x80f8000)                          = 0x80f8000
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
uname({sys="Linux", node="varaha", ...}) = 0
brk(0x80f9000)                          = 0x80f9000
stat64("/srv/ccdl.libraries.claremont.edu/Content4.3/bin",
{st_mode=S_IFDIR|0770, st_size=4096, ...}) = 0
stat64(".", {st_mode=S_IFDIR|0770, st_size=4096, ...}) = 0
getpid()                                = 13351
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=21568, ...}) = 0
mmap2(NULL, 21568, PROT_READ, MAP_SHARED, 3, 0) = 0xb7f6a000
close(3)                                = 0
getppid()                               = 13350
getpgrp()                               = 13349
rt_sigaction(SIGCHLD, {0x807acd0, [], 0}, {SIG_DFL}, 8) = 0
brk(0x80fa000)                          = 0x80fa000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
fcntl64(0, F_GETFL)                     = 0 (flags O_RDONLY)
fstat64(0, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
_llseek(0, 0, 0xbfe1fde0, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(0, "t", 1)                         = 1
brk(0x80fb000)                          = 0x80fb000
read(0, "e", 1)                         = 1
read(0, "s", 1)                         = 1
read(0, "t", 1)                         = 1
read(0, " ", 1)                         = 1
read(0, "-", 1)                         = 1
read(0, "r", 1)                         = 1
read(0, " ", 1)                         = 1
read(0, ".", 1)                         = 1
read(0, "/", 1)                         = 1
read(0, "p", 1)                         = 1
read(0, "d", 1)                         = 1
read(0, "f", 1)                         = 1
read(0, "i", 1)                         = 1
read(0, "c", 1)                         = 1
read(0, "o", 1)                         = 1
read(0, "n", 1)                         = 1
read(0, "\n", 1)                        = 1
write(2, "+ test -r ./pdficon\n", 20+ test -r ./pdficon
)   = 20
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("./pdficon", {st_mode=S_IFREG|0770, st_size=17209, ...}) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(0, "", 1)                          = 0
exit_group(0)                           = ?
Process 13351 detached

--
Thank You
Jefferson Cowart
Network and Systems Administrator
Libraries Information Technology 


> -----Original Message-----
> From: Aurelien Jarno [mailto:aurelien@aurel32.net]
> Sent: Tuesday, August 05, 2008 05:59
> To: Jefferson Cowart
> Cc: 493016@bugs.debian.org
> Subject: Re: Bug#493016: libc6: ldd doesn't work with ACLs
> 
> On Thu, Jul 31, 2008 at 01:03:19PM -0700, Jefferson Cowart wrote:
> > $ sh -x /usr/bin/ldd pdficon
> > + TEXTDOMAIN=libc
> > + TEXTDOMAINDIR=/usr/share/locale
> > + RTLDLIST='/lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2'
> > + warn=
> > + bind_now=
> > + verbose=
> > + filename_magic_regex='((^|/)lib|.so$)'
> > + test 1 -gt 0
> > + case "$1" in
> > + break
> > + add_env='LD_TRACE_LOADED_OBJECTS=1 LD_WARN= LD_BIND_NOW='
> > + add_env='LD_TRACE_LOADED_OBJECTS=1 LD_WARN= LD_BIND_NOW=
> LD_LIBRARY_VERSION=$verify_out'
> > + add_env='LD_TRACE_LOADED_OBJECTS=1 LD_WARN= LD_BIND_NOW=
> LD_LIBRARY_VERSION=$verify_out LD_VERBOSE='
> > + test '' = yes
> > + set -o pipefail
> > + case $# in
> > + single_file=t
> > + result=0
> > + for file in '"$@"'
> > + test t = t
> > + case $file in
> > + file=./pdficon
> > + test '!' -f ./pdficon
> > + test -r ./pdficon
> 
> According to this debugging output, test -r thinks the file is not
> readable, that's why ldd bails out with this error message.
> 
> To get more details, could you please run the following command and
> send
> me the output?
> 
>   echo "test -r ./pdficon" | strace /bin/sh -x
> 
> --
>   .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
>  : :' :  Debian developer           | Electrical Engineer
>  `. `'   aurel32@debian.org         | aurelien@aurel32.net
>    `-    people.debian.org/~aurel32 | www.aurel32.net



Reply to: