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

Re: Bug#161740: open-ssl has invalid instruction



Am Sam, 2002-09-21 um 16.47 schrieb cwaki@medynet.sk:
> > Please send me the output of:
> > 
> > strace openssl version

> execve("/usr/bin/openssl", ["openssl", "version"], [/* 17 vars */]) = 0
> uname({sys="Linux", node="onyx", ...})  = 0
> brk(0)                                  = 0x808ab64
> old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000
> open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
> open("/etc/ld.so.cache", O_RDONLY)      = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=11858, ...}) = 0
> old_mmap(NULL, 11858, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
> close(3)                                = 0
> open("/usr/lib/i686/libssl.so.0.9.6", O_RDONLY) = 3

This would mean, that it works if you call

LD_LIBRARY_PATH=/usr/lib strace openssl version

but not if you call

strace openssl version

That looks like a big bug in the dynamic linker.

I just verified it on a 486 box. If I use LD_LIBRARY_PATH=/usr/lib, the
library gets loaded from /usr/lib/i486. If I don't use it, the library
gets loaded from /usr/lib/i686.

On a second thought, it looks like a problem with ldconfig. ldconfig
searches all the directories i686, i586 etc. and puts it in the cache.
This way, the i686 library is allways found, as long as one does not use
an LD_LIBRARY_PATH=/usr/lib. Here ld.so does it correctly.

If this is really the case, I have to cancel the optimisation for
openssl.

Christoph

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


Reply to: