On Tue, Apr 21, 2009 at 04:24:40PM +0200, Wolfgang Rosenauer wrote:
Hi,
I've got a real weird issue by trying to update mozilla-nss for Factory what I can only interpret as compiler issue or very weird coding issue.
mozilla-nss is running a comprehensive test suite during build which currently only seems to fail on openSUSE_Factory i586.
It apparently works on x86_64, all older distributions and also in Factory_staging.
https://build.opensuse.org/package/show?package=mozilla-nss&project=mozilla%3AFactory
In the failing buildlog one can see that it's crashing on a tool called signtool with free() on an invalid pointer. (search for "- FAILED").
When I build locally I also get those cores dumped and looked into two of them which show the following stack:
(gdb) bt #0 0xb7be39d6 in raise () from /lib/libc.so.6 #1 0xb7be52d8 in abort () from /lib/libc.so.6 #2 0xb7c1fa25 in ?? () from /lib/libc.so.6 #3 0xb7c259c5 in ?? () from /lib/libc.so.6 #4 0xb7c2727b in free () from /lib/libc.so.6 #5 0xb7d45ab7 in PR_Free () from /usr/lib/libnspr4.so #6 0xb7d89f41 in PORT_Free_Util (ptr=0x0) at secport.c:152 #7 0x0805b146 in jar_extract_mf (jar=0x8091f90, format=<value optimized out>, fp=0x8092048, ext=0x806a210 "sf") at jarfile.c:737 #8 0x0805b5b2 in jar_extract_manifests (fp=<value optimized out>, format=<value optimized out>, jar=<value optimized out>) at jarfile.c:611 #9 JAR_pass_archive (jar=0x8091f90, format=jarArchZip, filename=0x80795c8 "nojs.jar", url=0x806c5f1 "some-url") at jarfile.c:134 #10 0x08057c32 in VerifyJar (filename=0x80795c8 "nojs.jar") at verify.c:74 #11 0x0804e7fe in main (argc=9, argv=0xbfa54424) at signtool.c:1007
Looking at secport.c:152 I find: void PORT_Free(void *ptr) { if (ptr) { PR_Free(ptr); } }
I'm really confused how the above stack can happen at all if ptr=0x0.
That's the reason why I'm actually thinking about some weird toolchain thing. That's a _bit_ important to me as I need to update NSS for different reasons and I don't want to disable the testsuite.
Any pointers for me on that?
free (NULL); is a good operation and will not abort(). ptr is not NULL at this point in time I think, the backtrace is just a bit erroneous. However, you corrupted memory earlier somewhere. Can you run this in valgrind? Ciao, Marcus -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org