This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RTLD_NEXT giving wrong symversions?


Hi,

Seems that dlsym (RTLD_NEXT) from a preloaded library does not always point to the default (RTLD_DEFAULT) symversion for pthread_cond_* functions. Is this a bug or is there no version guarantee?

Attached testcase shows this if you disable the address randomization. On native launch, attached 'app' gets following symversions:

DEFAULT symbol 'pthread_cond_wait' is at /lib64/libpthread.so.0:pthread_cond_wait:0x380100bf60 DEFAULT symbol 'pthread_cond_destroy' is at /lib64/libpthread.so.0:pthread_cond_destroy:0x380100bdf0 DEFAULT symbol 'pthread_cond_timedwait' is at /lib64/libpthread.so.0:pthread_cond_timedwait:0x380100c2c0 DEFAULT symbol 'pthread_cond_signal' is at /lib64/libpthread.so.0:pthread_cond_signal:0x380100c850 DEFAULT symbol 'pthread_cond_broadcast' is at /lib64/libpthread.so.0:pthread_cond_broadcast:0x380100c940

If attached 'libtest.so' is preloaded for the 'app' launch, we get:

NEXT symbol 'pthread_cond_wait' is at /lib64/libpthread.so.0:pthread_cond_wait:0x380100cae0 NEXT symbol 'pthread_cond_destroy' is at /lib64/libpthread.so.0:pthread_cond_destroy:0x380100cac0 NEXT symbol 'pthread_cond_timedwait' is at /lib64/libpthread.so.0:pthread_cond_timedwait:0x380100cb50 NEXT symbol 'pthread_cond_signal' is at /lib64/libpthread.so.0:pthread_cond_signal:0x380100cbe0 NEXT symbol 'pthread_cond_broadcast' is at /lib64/libpthread.so.0:pthread_cond_broadcast:0x380100cc50

Everything apart from pthread_cond_* seems to be OK. Bug or not?


--
Janne

Attachment: svtest.tar.gz
Description: application/gzip


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]