BusyBox 1.36.0 regression: Segfaults on i386 musl libc
Sören Tempel
soeren at soeren-tempel.net
Thu Jan 5 20:39:09 UTC 2023
Hi,
I am the maintainer of the BusyBox package for Alpine Linux. While
upgrading that package from 1.35.0 to 1.36.0 I noticed a segfault
on Alpine x86, on all other architectures BusyBox 1.36.0 builds
fine and passes the tests. On x86 though it segfaults with any
command-line argument, for example:
$ make defconfig
$ make
$ gdb --args ./busybox_unstripped
(gdb) run
Starting program: /home/buildozer/aports/main/busybox/src/build-dynamic/busybox_unstripped
Program received signal SIGSEGV, Segmentation fault.
0xf7fc24e0 in do_relocs (dso=dso at entry=0xf7ffca20 <app>, rel=0x565578e4, rel_size=8712, stride=2) at ldso/dynlink.c:471
471 ldso/dynlink.c: No such file or directory.
(gdb) bt
#0 0xf7fc24e0 in do_relocs (dso=dso at entry=0xf7ffca20 <app>, rel=0x565578e4, rel_size=8712, stride=2) at ldso/dynlink.c:471
#1 0xf7fc263f in reloc_all (p=p at entry=0xf7ffca20 <app>) at ldso/dynlink.c:1375
#2 0xf7fc473e in __dls3 (sp=0xffffdcf0, auxv=0xffffdd3c) at ldso/dynlink.c:1974
#3 0xf7fc3eab in __dls2 (base=<optimized out>, sp=<optimized out>) at ldso/dynlink.c:1719
#4 0xf7fc19c9 in _dlstart () from /lib/ld-musl-i386.so.1
Looking at the backtrace, it seems that it segfaults in musl's dynamic
loader. Since BusyBox 1.35.0 worked fine on x86 I bisected this and it
turns out that this is a regression introduced in commit
a96ccbefe417aaac6a2ce59c788e01fc0f83902f [1]. If I disable SHA/MD5
hardware acceleration then BusyBox 1.36.0 builds fine and passes all
tests on Alpine Linux x86.
Any idea what particular part of the referenced commit might be causing this?
Greetings,
Sören
[1]: https://git.busybox.net/busybox/commit/?id=a96ccbefe417aaac6a2ce59c788e01fc0f83902f
More information about the busybox
mailing list