#942746 libsoxr: Testsuite crashes on spar64 due to unaligned access in soxr_output_no_callback #942746
- Package:
- src:libsoxr
- Source:
- libsoxr
- Submitter:
- John Paul Adrian Glaubitz
- Date:
- 2025-11-14 20:27:03 UTC
- Severity:
- normal
- Tags:
Hi!
The testsuite of libsoxr crashes on sparc64 with "Bus Error" which indicates
an unaligned access in the C code:
8/10 Test #8: 28-bit-perfect-65537-44100 .......***Failed 0.23 sec
Start 9: 1-delay-clear
9/10 Test #9: 1-delay-clear ....................Bus error***Exception: 0.05 sec
Start 10: lsr-bindings
Building the code in debug mode with "./go debug" and running the test manually
in gdb, gives:
glaubitz@kyoto:~/soxr-code$ gdb ./debug/tests/1-delay-clear
GNU gdb (Debian 8.3.1-1) 8.3.1
(...)
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./debug/tests/1-delay-clear...
(gdb) r
Starting program: /home/glaubitz/soxr-code/debug/tests/1-delay-clear
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/sparc64-linux-gnu/libthread_db.so.1".
9599 4410 0
0 729 3681
Program received signal SIGBUS, Bus error.
0xffff80010012c7d4 in soxr_output_no_callback (p=0x10000104280, out=0x7feffff4f3c, len=100) at /home/glaubitz/soxr-code/src/soxr.c:689
689 done = soxr_output_1ch(p, u, ((soxr_bufs_t)out)[u], len, separated);
(gdb) bt
#0 0xffff80010012c7d4 in soxr_output_no_callback (p=0x10000104280, out=0x7feffff4f3c, len=100) at /home/glaubitz/soxr-code/src/soxr.c:689
#1 0xffff80010012ca48 in soxr_output (p=0x10000104280, out=0x7feffff4f3c, len0=100) at /home/glaubitz/soxr-code/src/soxr.c:710
#2 0xffff80010012cfc4 in soxr_process (p=0x10000104280, in=0x0, ilen0=0, idone0=0x0, out=0x7feffff4f3c, olen=100, odone0=0x7fefffff0a8) at /home/glaubitz/soxr-code/src/soxr.c:800
#3 0x000001000000120c in main (argc=1, arg=0x7fefffff4b8) at /home/glaubitz/soxr-code/tests/1-delay-clear.c:48
(gdb)
And, indeed, the function soxr_output_no_callback() in src/soxr.c contains
two cases of really poor pointer gymnastics which provoke an unaligned
access which results in poor performance on most architectures or even
crashes like on sparc64.
The problematic part of the code is most likely the "(soxr_bufs_t)out)[u]" part
in line 689 as well as the (soxr_bufs_t)out)[i] in line 683. I have not fully
understood the code yet to come up with a patch, but in most cases a memcpy()
will help to transfer the bytes in question. But maybe someone has a better
suggestion while I try to whip up a patch.
Thanks,
Adrian
Hi! One of the Gentoo SPARC maintainers had a go at this and came up with a simple patch very quickly which I am attaching to this bug report. Could you include the patch in the next upload? He's also going to send this patch upstream. Adrian
Hello, Bug #942746 in libsoxr reported by you has been fixed in the Git repository and is awaiting an upload. You can see the commit message below and you can check the diff of the fix at: https://salsa.debian.org/multimedia-team/libsoxr/commit/5ad67196cbb859d6c6371ed7bb4da0a9870399ba ------------------------------------------------------------------------ Add patch to fix FTBFS in sparc64. Closes: #942746 Signed-off-by: Mattia Rizzolo <mattia@debian.org> ------------------------------------------------------------------------ (this message was generated automatically) -- Greetings https://bugs.debian.org/942746
We believe that the bug you reported is fixed in the latest version of libsoxr, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to 942746@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Mattia Rizzolo <mattia@debian.org> (supplier of updated libsoxr package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmaster@ftp-master.debian.org) Format: 1.8 Date: Mon, 21 Oct 2019 14:54:34 +0200 Source: libsoxr Architecture: source Version: 0.1.3-2 Distribution: unstable Urgency: medium Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org> Changed-By: Mattia Rizzolo <mattia@debian.org> Closes: 942746 Changes: libsoxr (0.1.3-2) unstable; urgency=medium . * Team upload. . [ Ondřej Nový ] * Bump Standards-Version to 4.4.1. . [ Mattia Rizzolo ] * Add patch to fix FTBFS in sparc64. Closes: #942746 * Set Rules-Requires-Root:no. * Add Build-Depends-Package to the .symbols files. Checksums-Sha1: fb9771dc507f8ca84da042f787044b240ead0cc9 2146 libsoxr_0.1.3-2.dsc 215c6342b8cc1cc50df82d25beecfe141d12ceaa 5052 libsoxr_0.1.3-2.debian.tar.xz de27396ca6b0bd9645d1324c581cc94a6997ff91 7356 libsoxr_0.1.3-2_amd64.buildinfo Checksums-Sha256: 7bd819e513a9eee4850888d48e394e147efd353d66d401ec2926cd0a4f14dafa 2146 libsoxr_0.1.3-2.dsc 7e93658ba81518446694d30d18563a9186fcbcf63f0c851c9604e44f7d0f382b 5052 libsoxr_0.1.3-2.debian.tar.xz 17ad7364ac244c9044432511185cddac34ddf02b295d7b621a4f9beb244b7e7f 7356 libsoxr_0.1.3-2_amd64.buildinfo Files: 98eff095ac403fac65802b2156e3120c 2146 libs optional libsoxr_0.1.3-2.dsc ebb530641f4dab260288194deb18475c 5052 libs optional libsoxr_0.1.3-2.debian.tar.xz 322b87f4301a3abcdd701aed1c6cd524 7356 libs optional libsoxr_0.1.3-2_amd64.buildinfo -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEi3hoeGwz5cZMTQpICBa54Yx2K60FAl2trO4ACgkQCBa54Yx2 K60C6g//dPTotTVRUH4rLQGg4BEjXaA2JKte9Wm1W7aQxJq/mpVWOMD9UsSaCCOo KxHE/1ZOUyMgeAK3leOEdps+hU+z29HK8XT6HKR1d7FwpAKQIcxPkhQzP4VHHRMi E8sX38RtsXEBQdv2VzElc77NZizrE4XqNYDttiOI6Y9CNvKZXxtW90Aw0/GOun1d 5o6sAxct2uPqoi5V0w+PyXhKrtA1XqV0s6bejK+kTOcK2BsRYNxdopcj7qqu5vHm x4DUbOESPca37yelcyf7tu8949JNhF2xkAvnXN29FtIdnm83dyMSThVJB7HxeRFb 25OraWWVXjEhdlqFdnLMAJKpcRBRiiIN5TXsSxt6XmICSu31HO66sBq4ozoWUPAH V7oyq2RvRQBde0azmGF4EDJNOr5gw5tOotwzWwMhsl4S/Tilf3+KxVPHtbw3CjA8 rQIoiZJfdLtC8qsEa89i+TGmdnDtxViKR3EBM+3Bj4BOYnULSFb03glWldSpwz/X t0rqFjCDmRkieiZa+XOakbopAi+vy54DpRE/+c1tyfutLAAtEWJ+FVXFLNBUTuom I8td2IdNQXwj3Ti8+apYciqkHPF/xIod5zXj059D4XMbTy5le13iWhqGNufJI/i2 SWqJzljgJtlzO4MOLy5g1gjCTk+eINIUVv15JCEi2uiWVtzNu4s= =jFdS -----END PGP SIGNATURE-----
Reopening this since the patch was dropped. I'll try to come up with a better patch in the future. Adrian