[uClibc] uClibc-0.9.20 and ldd coredump

Peter S. Mazinger ps.m at gmx.net
Wed Jul 2 15:10:08 UTC 2003


Hello!

The changelog of 0.9.20 says, that the problem with ldd coredumping 
if ran against non-executables is solved.
Attached are the outputs of strace ldd /lib/libc.so.0 (native environment)
for:
ulimit -c 0 (ldd.0)
ulimit -c 128 (ldd.1)

I have to mention that I am using a grsecurity enabled kernel (mainly the 
PaX options - http://pageexec.virtualave.net - are relevant for this 
case).
Although I've got earlier the answer that PaX/grsecurity has problems with 
uClibc (true for uClibc < 0.9.18, reported by me), I am using grsecurity 
since uClibc-0.9.19 natively on x86 and there are no problems (only the 
ones present also on a glibc system ;-).

Peter

-- 
Peter S. Mazinger <ps.m at gmx.net>   ID: 0xA5F059F2    NIC: IXUYHSKQLI
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2
-------------- next part --------------
execve("/usr/bin/ldd", ["ldd", "/lib/libc.so.0"], [/* 18 vars */]) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0) = 0x246ee000
readlink("/lib/ld-uClibc.so.0", "ld-uClibc-0.9.20.so", 1024) = 19
open("/lib/libc.so.0", 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\240\345"..., 4096) = 4096
old_mmap(NULL, 278528, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x246ef000
old_mmap(0x246ef000, 256583, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x246ef000
old_mmap(0x2472e000, 7564, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3e000) = 0x2472e000
old_mmap(0x24730000, 11692, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x24730000
close(3)                                = 0
ioctl(0, SNDCTL_TMR_TIMEBASE, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE, {B38400 opost isig icanon echo ...}) = 0
brk(0x804d924)                          = 0x804d924
brk(0x804e000)                          = 0x804e000
brk(0x804f000)                          = 0x804f000
brk(0x8050000)                          = 0x8050000
open("/lib/libc.so.0", O_RDONLY)        = 3
ioctl(3, SNDCTL_TMR_TIMEBASE, 0x58b4f878) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0755, st_size=263084, ...}) = 0
old_mmap(NULL, 263084, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x24733000
brk(0x8051000)                          = 0x8051000
brk(0x8052000)                          = 0x8052000
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=16068, ...}) = 0
fork()                                  = 5188
--- SIGCHLD (Child exited) ---
wait4(5188, [WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV && WCOREDUMP(s)], 0, NULL) = 5188
_exit(0)                                = ?
-------------- next part --------------
execve("/usr/bin/ldd", ["ldd", "/lib/libc.so.0"], [/* 18 vars */]) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0) = 0x2a630000
readlink("/lib/ld-uClibc.so.0", "ld-uClibc-0.9.20.so", 1024) = 19
open("/lib/libc.so.0", 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\240\345"..., 4096) = 4096
old_mmap(NULL, 278528, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2a631000
old_mmap(0x2a631000, 256583, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2a631000
old_mmap(0x2a670000, 7564, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3e000) = 0x2a670000
old_mmap(0x2a672000, 11692, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2a672000
close(3)                                = 0
ioctl(0, SNDCTL_TMR_TIMEBASE, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE, {B38400 opost isig icanon echo ...}) = 0
brk(0x804d924)                          = 0x804d924
brk(0x804e000)                          = 0x804e000
brk(0x804f000)                          = 0x804f000
brk(0x8050000)                          = 0x8050000
open("/lib/libc.so.0", O_RDONLY)        = 3
ioctl(3, SNDCTL_TMR_TIMEBASE, 0x5cdf11b8) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0755, st_size=263084, ...}) = 0
old_mmap(NULL, 263084, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x2a675000
brk(0x8051000)                          = 0x8051000
brk(0x8052000)                          = 0x8052000
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=16068, ...}) = 0
fork()                                  = 5178
--- SIGCHLD (Child exited) ---
wait4(5178, [WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV], 0, NULL) = 5178
_exit(0)                                = ?


More information about the uClibc mailing list