Skip to content

segfaults with the loop transport #1045

@tbzatek

Description

@tbzatek

FYI, just spotted a bunch of segfaults coming from the fact the loop transport's address sysfs value is empty:

libnvme/src/nvme/tree.c

Lines 2232 to 2233 in 6e6154a

FREE_CTRL_ATTR(c->address);
c->address = strdup(addr);

Introduced in #1033

Program received signal SIGSEGV, Segmentation fault.
Downloading source file /usr/src/debug/glibc-2.41.9000-24.fc43.x86_64/string/../sysdeps/x86_64/multiarch/strlen-avx2.S
__strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:76                                                                                                                                                                                                                                                             
76		VPCMPEQ	(%rdi), %ymm0, %ymm1
(gdb) t a a bt

Thread 1 (Thread 0x7ffff7b85840 (LWP 159833) "nvme"):
#0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:76
#1  0x00007ffff7dc12e3 in __GI___strdup (s=s@entry=0x0) at strdup.c:41
#2  0x00007ffff7f90e93 in nvme_ctrl_alloc (r=0x5555556da6e0, s=0x5555556dc130, path=0x5555556d84f0 "/sys/class/nvme/nvme3", name=0x5555556da233 "nvme3") at ../src/nvme/tree.c:2233
#3  nvme_scan_ctrl (r=r@entry=0x5555556da6e0, name=0x5555556da233 "nvme3") at ../src/nvme/tree.c:2296
#4  0x00007ffff7f9150a in nvme_scan_topology (r=r@entry=0x5555556da6e0, f=f@entry=0x0, f_args=f_args@entry=0x0) at ../src/nvme/tree.c:298
#5  0x0000555555572e38 in list (argc=<optimized out>, argv=<optimized out>, cmd=<optimized out>, plugin=<optimized out>) at ../nvme.c:3598
#6  0x00005555555b8b91 in handle_plugin (argc=2, argv=0x7fffffffe180, plugin=0x5555556c8f00 <builtin>) at ../plugin.c:188
#7  0x000055555555b3f1 in main (argc=3, argv=0x7fffffffe178) at ../nvme.c:11068

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions