Closed
Bug 763327
Opened 14 years ago
Closed 5 years ago
mozilla::HashBytes missing from firefox_13.0+build1 libxul.so
Categories
(Core :: MFBT, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: infinity0, Unassigned)
Details
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.4) Gecko/20100101 Firefox/10.0.4 Iceweasel/10.0.4
Build ID: 20120517103601
Steps to reproduce:
Code for mozilla::HashBytes is completely missing from recent builds of libxul.so, leading to segfaults when it is called, for example by NS_InitXPCOM2() in certain third-party applications.
$ objdump -S /usr/lib/xulrunner-13.0/libxul.so | grep -A3 HashBytes
00000000005c68d0 <_ZN7mozilla9HashBytesEPKvm@plt>:
5c68d0: ff 25 b2 ea 52 01 jmpq *0x152eab2(%rip) # 1af5388 <CMMFCertifiedKeyPairTemplate+0x3508>
5c68d6: 68 54 05 00 00 pushq $0x554
5c68db: e9 a0 aa ff ff jmpq 5c1380 <_init+0x10>
$ nm /usr/lib/debug/usr/lib/xulrunner-13.0/libxul.so | grep HashBytes
w _ZN7mozilla9HashBytesEPKvm
See also https://github.com/infinity0/mozilla-gnome-keyring/issues/12
Comment 1•14 years ago
|
||
This also break geckofx-13 on Linux: https://bitbucket.org/geckofx/geckofx-13.0
As a !hack! I worked around the bug by doing this:
echo -e "#include<stdlib.h>\nsize_t je_malloc_usable_size_in_advance(size_t n){ return n; }\nvoid * moz_xrealloc(void *ptr, size_t size)
{ return realloc(ptr, size); } int* _ZN7mozilla9HashBytesEPKvj(void* bytes, size_t length) { return 0; } " | gcc -xc --shared - -o jemallocfix.so
and LD_PRELOAD ing jemallocfix.so
not sure if you are, but you probably don't want to actually compile "return 0" into any end product, as it's obviously not a good hash function :p
a cleaner "hack" is to grab the HashFunctions.cpp from the mozilla source code itself, e.g. like this: https://github.com/fat-lobyte/mozilla-gnome-keyring/commit/2acdaf2a6875839236d9020c19c885c4dbcfbd50
It was moved into a different shared object. Adding the following to my link command fixed the issue for me:
-Wl,--whole-archive -lmozglue -lmemory
Comment 5•5 years ago
|
||
I guess there's nothing left to do here beyond what Comment 4 explained.
Status: UNCONFIRMED → RESOLVED
Closed: 5 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•