[uClibc 0004074]: LD_PRELOAD doesnt seem to work correctly

bugs at busybox.net bugs at busybox.net
Sat Jul 12 02:45:56 UTC 2008


A NOTE has been added to this issue. 
====================================================================== 
http://busybox.net/bugs/view.php?id=4074 
====================================================================== 
Reported By:                wolle
Assigned To:                uClibc
====================================================================== 
Project:                    uClibc
Issue ID:                   4074
Category:                   Architecture Specific
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     assigned
====================================================================== 
Date Submitted:             07-11-2008 19:28 PDT
Last Modified:              07-11-2008 19:45 PDT
====================================================================== 
Summary:                    LD_PRELOAD doesnt seem to work correctly
Description: 
hi

i tried to use tsocks ... a tcp socks wrapper ... but the app always
crashed ...

all it does .. it preloads ... the tosckslib

LD_PRELOAD="/usr/lib/libtsocks.so" irssi doesnt work .... 

LD_PRELOAD="/usr/lib/libtsocks.so" irssi
Bus error


after some time i realiced this ....
ldd irssi
        libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0x2aaee000)
        libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x2ab30000)
        libdl.so.0 => /lib/libdl.so.0 (0x2ab98000)
        libncurses.so.5 => /usr/lib/libncurses.so.5 (0x2abdb000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2ac5c000)
        libc.so.0 => /lib/libc.so.0 (0x2acab000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)

when i do this LD_PRELOAD="/usr/lib/libtsocks.so /lib/libuClibc-0.9.29.so"
irssi

irssi comes up nice ....

the same for ctorrent ....
but it also needs uClibc++

ldd ctorrent
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x2aaee000)
        libuClibc++.so.0 => /usr/lib/libuClibc++.so.0 (0x2ac30000)
        libc.so.0 => /lib/libc.so.0 (0x2aca2000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2ad46000)
        libdl.so.0 => /lib/libdl.so.0 (0x2ad95000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)

LD_PRELOAD="/usr/lib/libtsocks.so /lib/libuClibc-0.9.29.so
/usr/lib/libuClib
c++.so.0" ctorrent


====================================================================== 

---------------------------------------------------------------------- 
 wolle - 07-11-08 19:45  
---------------------------------------------------------------------- 
the output of ....

LD_PRELOAD="/usr/lib/libtsocks.so" strace irssi


execve("/usr/bin/irssi", ["irssi"], [/* 9 vars */]) = 0
svr4_syscall()                          = -1 ERRNO_4090 (Unknown error
4090)
stat("/etc/ld.so.cache", 0x7f9a3060)    = -1 ENOENT (No such file or
directory)
open("/usr/lib/libtsocks.so", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=24982, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2aaae000
read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\340\n\0\0004\0\0\0"...,
4096) = 4096
old_mmap(NULL, 294912, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aaee000
old_mmap(0x2aaee000, 24720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0x2aaee000
old_mmap(0x2ab34000, 406, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x6000) = 0x2ab34000
old_mmap(0x2ab35000, 944, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ab35000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/lib/libgmodule-1.2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/libgmodule-1.2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/libgmodule-1.2.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=7650, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2aaae000
read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0p\n\0\0004\0\0\0"...,
4096) = 4096
old_mmap(NULL, 270336, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2ab36000
old_mmap(0x2ab36000, 7476, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0x2ab36000
old_mmap(0x2ab77000, 3554, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x1000) = 0x2ab77000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/lib/libglib-1.2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/libglib-1.2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/libglib-1.2.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=162118, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2aaae000
read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\320P\0\0004\0\0\0"...,
4096) = 4096
old_mmap(NULL, 425984, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2ab78000
old_mmap(0x2ab78000, 160772, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,
3, 0) = 0x2ab78000
old_mmap(0x2abdf000, 2374, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x27000) = 0x2abdf000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/lib/libdl.so.0", O_RDONLY)       = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=8302, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2aaae000
read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0p\10\0\0004\0\0\0"...,
4096) = 4096
old_mmap(NULL, 274432, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2abe0000
old_mmap(0x2abe0000, 6448, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0x2abe0000
old_mmap(0x2ac21000, 4206, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x1000) = 0x2ac21000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/lib/libncurses.so.5", O_RDONLY)  = -1 ENOENT (No such file or
directory)
open("/lib/libncurses.so.5", O_RDONLY)  = -1 ENOENT (No such file or
directory)
open("/usr/lib/libncurses.so.5", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=261623, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2aaae000
read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\340\313\0\0004\0\0\0"...,
4096) = 4096
old_mmap(NULL, 528384, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2ac23000
old_mmap(0x2ac23000, 227852, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,
3, 0) = 0x2ac23000
old_mmap(0x2ac9b000, 32247, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0x38000) = 0x2ac9b000
old_mmap(0x2aca3000, 1792, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2aca3000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=60806, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2aaae000
read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\240\31\0\0004\0\0\0"...,
4096) = 4096
old_mmap(NULL, 323584, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aca4000
old_mmap(0x2aca4000, 58700, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0x2aca4000
old_mmap(0x2acf2000, 3462, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0xe000) = 0x2acf2000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=388979, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2aaae000
read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\300\247\0\0004\0\0\0"...,
4096) = 4096
old_mmap(NULL, 671744, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2acf3000
old_mmap(0x2acf3000, 383684, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,
3, 0) = 0x2acf3000
old_mmap(0x2ad90000, 8051, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x5d000) = 0x2ad90000
old_mmap(0x2ad92000, 19408, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ad92000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/lib/libdl.so.0", O_RDONLY)       = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=8302, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=388979, ...}) = 0
close(3)                                = 0
open("/lib/libdl.so.0", O_RDONLY)       = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=8302, ...}) = 0
close(3)                                = 0
open("/lib/libglib-1.2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/libglib-1.2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/libglib-1.2.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=162118, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=60806, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=388979, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=60806, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=388979, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=388979, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=388979, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=60806, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=388979, ...}) = 0
close(3)                                = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=20694, ...}) =
0
mprotect(0x2ac21000, 4096, PROT_READ)   = 0
mprotect(0x2ad90000, 4096, PROT_READ)   = 0
mprotect(0x2aaec000, 4096, PROT_READ)   = 0
ioctl(0, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
getuid()                                = 1000
geteuid()                               = 1000
brk(0)                                  = 0x51e000
brk(0x51f000)                           = 0x51f000
getuid()                                = 1000
open("/etc/passwd", O_RDONLY)           = 3
ioctl(3, TIOCNXCL, 0x7f9a2fb8)          = -1 ENOTTY (Inappropriate ioctl
for device)
brk(0x520000)                           = 0x520000
read(3, "root:x:0:0:root:\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) =
120
close(3)                                = 0
access("", X_OK)                        = -1 ENOENT (No such file or
directory)
access("", X_OK)                        = -1 ENOENT (No such file or
directory)
access("", X_OK)                        = 0
stat("/home/puchu/.irssi", {st_mode=S_IFDIR|0700, st_size=1024, ...}) = 0
open("", O_RDWR)                        = -1 ENOENT (No such file or
directory)
rt_sigaction(SIGTRAP, {SIG_DFL}, NULL, 16) = 0
gettimeofday({1215829503, 440286}, NULL) = 0
stat("/home/puchu/.irssi", {st_mode=S_IFDIR|0700, st_size=1024, ...}) = 0
stat("/home/puchu/.irssi/config", {st_mode=S_IFREG|0600, st_size=7152,
...}) = 0
open("/home/puchu/.irssi/config", O_RDONLY) = 3
--- SIGBUS (Bus error) @ 0 (0) ---
+++ killed by SIGBUS +++ 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
07-11-08 19:28  wolle          New Issue                                    
07-11-08 19:28  wolle          Status                   new => assigned     
07-11-08 19:28  wolle          Assigned To               => uClibc          
07-11-08 19:45  wolle          Note Added: 0009204                          
======================================================================




More information about the uClibc-cvs mailing list