control: severity -1 normal
control: tags -1 + moreinfo upstream

Am 25.05.21 um 15:29 schrieb Simon Richter:
Package: systemd
Version: 241-7~deb10u7
Severity: important
Tags: upstream

Hi,

I have a Docker container where I compile FPGA images using the QuartusII
toolchain, but this fails with

     realloc(): invalid pointer
     Aborted

Investigating this, I got a backtrace from gdb:

     #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
     #1  0x00007f242ac38535 in __GI_abort () at abort.c:79
     #2  0x00007f242ac8f508 in __libc_message (action=action@entry=do_abort, 
fmt=fmt@entry=0x7f242ad9a28d "%s\n") at ../sysdeps/posix/libc_fatal.c:181
     #3  0x00007f242ac95c1a in malloc_printerr (str=str@entry=0x7f242ad98587 
"realloc(): invalid pointer") at malloc.c:5341
     #4  0x00007f242ac9ae4a in __GI___libc_realloc (oldmem=0x7f242583b378, 
bytes=9) at malloc.c:3166
     #5  0x00007f24256afaf5 in strextend_with_separator 
(x=x@entry=0x7ffe16aeaba0, separator=0x0, separator=0x0) at 
../src/basic/string-util.c:920
     #6  0x00007f24256b3081 in chase_symlinks.constprop.36 (path=<optimized 
out>, ret=0x7ffe16aeac98, flags=0, original_root=0x0) at 
../src/basic/fs-util.c:1009
     #7  0x00007f24256b8c0c in device_set_syspath (device=0x19e5760, 
_syspath=_syspath@entry=0x7ffe16aead10 "/sys/bus/serio/devices/serio0", 
verify=verify@entry=true)
         at ../src/libsystemd/sd-device/sd-device.c:148
     #8  0x00007f24256b930a in sd_device_new_from_syspath (ret=ret@entry=0x7ffe16aeadd0, 
syspath=syspath@entry=0x7ffe16aead10 "/sys/bus/serio/devices/serio0")
         at ../src/libsystemd/sd-device/sd-device.c:223
     #9  0x00007f24256bf572 in enumerator_scan_dir_and_add_devices 
(enumerator=enumerator@entry=0x19e5690, basedir=basedir@entry=0x7f24256c77c8 
"bus",
         subdir1=subdir1@entry=0x7f24257d014b "serio", 
subdir2=subdir2@entry=0x7f24256c77ef "devices") at 
../src/libsystemd/sd-device/device-enumerator.c:471
     #10 0x00007f24256bf945 in enumerator_scan_dir (enumerator=enumerator@entry=0x19e5690, 
basedir=basedir@entry=0x7f24256c77c8 "bus", subdir=<optimized out>, 
subsystem=0x0)
         at ../src/libsystemd/sd-device/device-enumerator.c:568
     #11 0x00007f24256c221f in enumerator_scan_devices_all 
(enumerator=0x19e5690) at ../src/libsystemd/sd-device/device-enumerator.c:777
     #12 device_enumerator_scan_devices (enumerator=0x19e5690) at 
../src/libsystemd/sd-device/device-enumerator.c:844
     #13 udev_enumerate_scan_devices (udev_enumerate=<optimized out>, 
udev_enumerate=<optimized out>) at ../src/libudev/libudev-enumerate.c:377
     #14 0x00007f2430302f45 in ?? () from 
/opt/altera/20.1/quartus/linux64/libsys_cpt.so

I've tried to build a minimal test case, which succeeds:

     #include <libudev.h>

     int main(int argc, char **argv)
     {
         struct udev *u = udev_new();
         struct udev_enumerate *e = udev_enumerate_new(u);
         return udev_enumerate_scan_devices(e);
     }

With "succeeds", I guess you failed to reproduce the issue or do you mean you succeeded in building a minimal test case which reproduces the issue?

So, in order to get better debug information, I've tried to rebuild the
systemd package with debug information. For convenience, I did this inside
a container, and got several failing test cases. I then upgraded to the
version in sid to see if the problem had been solved in the meantime, but
building this package also failed:


I'm not sure that the explicit asserts you see in the test suite inside docker are the same issue as the invalid pointer access you encountered above, so I probably wouldn't entangle them.

Please consider filing an upstream issue at
https://github.com/systemd/systemd

It's likely that upstream has follow-up questions which you can answer better then me.

Regards,
Michael




Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to