[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1060405: Segmentation fault on opening .deb files



Package: engrampa
Version: 1.26.1-1
Severity: important


Dear Maintainer,

Since mid December 2023 engrampa (on Debian testing) has been crashing with segmentation fault when opening any .deb files.
By looking with GDB it seems the error is thrown here ( https://github.com/mate-desktop/engrampa/blob/1.26/src/fr-command-dpkg.c#L76 ). After some searches I found that the same bug was already reported to upstream ( https://github.com/mate-desktop/engrampa/issues/496 ) and it has been fixed since October 2023; however upstream hasn't released a new version yet (as of today, last is 1.27.1 from Aug 22, 2023).

Taking in account that this is the patch to fix the bug ( https://github.com/mate-desktop/engrampa/commit/bdafd0c2db93e85ed0e7b19fd502e254e5b587ea ) and it is compatible with 1.26.1 code ( https://github.com/mate-desktop/engrampa/blob/1.26/src/glib-utils.c#L422-L425 ), would you consider to add it to the package's patch set and release as 1.26.1-2?

$ cat /etc/issue
Debian GNU/Linux trixie/sid \n \l
$ uname -a
Linux debian-zooplus 6.5.0-5-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.5.13-1 (2023-11-29) x86_64 GNU/Linux

$ gdb -batch -n -ex 'set pagination off' -ex run -ex bt -ex 'bt full' -ex 'thread apply all bt full' --args engrampa grep_3.11-3_amd64.deb > engrampa.log
76 ./src/fr-command-dpkg.c: File o directory non esistente

engrampa.log
-------------------------------------------------
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff592e6c0 (LWP 28785)]
[New Thread 0x7fffed12d6c0 (LWP 28786)]
[New Thread 0x7ffff512d6c0 (LWP 28787)]
[New Thread 0x7ffff48966c0 (LWP 28788)]
[New Thread 0x7fffeebff6c0 (LWP 28789)]
[Thread 0x7fffeebff6c0 (LWP 28789) exited]
[New Thread 0x7fffeebff6c0 (LWP 28790)]
[New Thread 0x7fffee3fe6c0 (LWP 28791)]
[Thread 0x7fffeebff6c0 (LWP 28790) exited]
[Thread 0x7fffee3fe6c0 (LWP 28791) exited]
[New Thread 0x7fffee3fe6c0 (LWP 28792)]
[New Thread 0x7fffeebff6c0 (LWP 28793)]
[Thread 0x7fffee3fe6c0 (LWP 28792) exited]
[Thread 0x7fffeebff6c0 (LWP 28793) exited]
[New Thread 0x7fffeebff6c0 (LWP 28794)]
[New Thread 0x7fffee3fe6c0 (LWP 28795)]
[New Thread 0x7fffedbfd6c0 (LWP 28796)]
[Thread 0x7fffee3fe6c0 (LWP 28795) exited]
[New Thread 0x7fffee3fe6c0 (LWP 28797)]
[Thread 0x7fffedbfd6c0 (LWP 28796) exited]
[New Thread 0x7fffedbfd6c0 (LWP 28798)]
[Thread 0x7fffee3fe6c0 (LWP 28797) exited]
[Thread 0x7fffedbfd6c0 (LWP 28798) exited]
[Detaching after fork from child process 28799]

Thread 1 "engrampa" received signal SIGSEGV, Segmentation fault.
0x0000555555581fbe in process_metadata_line (comm=0x555555b20350, line=0x555555a89150 "    1083 bytes,    26 lines      control") at ./src/fr-command-dpkg.c:76
#0  0x0000555555581fbe in process_metadata_line (comm=0x555555b20350, line=0x555555a89150 "    1083 bytes,    26 lines      control") at ./src/fr-command-dpkg.c:76
#1  process_data_line (line=0x555555a89150 "    1083 bytes,    26 lines      control", data="" at ./src/fr-command-dpkg.c:110
#2  0x000055555558e12a in fr_channel_data_read (channel=channel@entry=0x55555576b160) at ./src/fr-process.c:144
#3  0x000055555558fca8 in check_child (data="" at ./src/fr-process.c:857
#4  0x00007ffff715702e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff71530d9 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffff7156317 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007ffff7156930 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007ffff7388b7d in g_application_run () from /lib/x86_64-linux-gnu/libgio-2.0.so.0
#9  0x000055555556b45a in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:357
#0  0x0000555555581fbe in process_metadata_line (comm=0x555555b20350, line=0x555555a89150 "    1083 bytes,    26 lines      control") at ./src/fr-command-dpkg.c:76
        fdata = 0x555555ac9dd0
        fields = 0x555555b082a0
        name = <optimized out>
        fdata = <optimized out>
        fields = <optimized out>
        name = <optimized out>
        __func__ = <optimized out>
        _g_boolean_var_10 = <optimized out>
#1  process_data_line (line=0x555555a89150 "    1083 bytes,    26 lines      control", data="" at ./src/fr-command-dpkg.c:110
        fdata = <optimized out>
        comm = 0x555555b20350
        fields = <optimized out>
        time_s = <optimized out>
        name = <optimized out>
        __func__ = "process_data_line"
#2  0x000055555558e12a in fr_channel_data_read (channel=channel@entry=0x55555576b160) at ./src/fr-process.c:144
        line = 0x555555a89150 "    1083 bytes,    26 lines      control"
        length = 41
        terminator_pos = 40
#3  0x000055555558fca8 in check_child (data="" at ./src/fr-process.c:857
        process = <optimized out>
        info = 0x555555aa46a0
        pid = <optimized out>
        status = 0
        continue_process = <optimized out>
        channel_error = <optimized out>
        __FUNCTION__ = "check_child"
#4  0x00007ffff715702e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007ffff71530d9 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#6  0x00007ffff7156317 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#7  0x00007ffff7156930 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#8  0x00007ffff7388b7d in g_application_run () from /lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#9  0x000055555556b45a in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:357
        context = <optimized out>
        error = 0x0
        app = 0x5555556f37f0
        client = <optimized out>
        status = <optimized out>

Thread 11 (Thread 0x7fffeebff6c0 (LWP 28794) "pool-engrampa"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1  0x00007ffff71b1c20 in g_cond_wait_until () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007ffff7120143 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff718444a in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4  0x00007ffff7183a41 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007ffff6f763ec in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:444
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737336795440, -7221697594254877078, -120, 0, 140737313429616, 140737190555648, 7221730029462691434, 7221677729832050282}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = "" = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6  0x00007ffff6ff6a5c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.

Thread 5 (Thread 0x7ffff48966c0 (LWP 28788) "dconf worker"):
#0  0x00007ffff6fe9a1f in __GI___poll (fds=0x7fffe4000b90, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
        sc_ret = <optimized out>
#1  0x00007ffff7156277 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007ffff7156930 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff48a29cd in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
No symbol table info available.
#4  0x00007ffff7183a41 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007ffff6f763ec in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:444
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737336795440, -7221697594254877078, -120, 17, 140737488342688, 140737287643136, 7221673041152253546, 7221677729832050282}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = "" = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6  0x00007ffff6ff6a5c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.

Thread 4 (Thread 0x7ffff512d6c0 (LWP 28787) "gdbus"):
#0  0x00007ffff6fe9a1f in __GI___poll (fds=0x7fffe0000b90, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
        sc_ret = <optimized out>
#1  0x00007ffff7156277 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007ffff7156c1f in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff73c5eaa in ?? () from /lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#4  0x00007ffff7183a41 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007ffff6f763ec in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:444
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737336795440, -7221697594254877078, -120, 11, 140737488344192, 140737296650240, 7221674187371650666, 7221677729832050282}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = "" = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6  0x00007ffff6ff6a5c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.

Thread 3 (Thread 0x7fffed12d6c0 (LWP 28786) "gmain"):
#0  0x00007ffff6fe9a1f in __GI___poll (fds=0x55555568a9d0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
        sc_ret = <optimized out>
#1  0x00007ffff7156277 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007ffff7156930 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff7156981 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4  0x00007ffff7183a41 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007ffff6f763ec in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:444
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737336795440, -7221697594254877078, -120, 0, 140737488343808, 140737162432512, 7221726963929783914, 7221677729832050282}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = "" = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6  0x00007ffff6ff6a5c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.

Thread 2 (Thread 0x7ffff592e6c0 (LWP 28785) "pool-spawner"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1  0x00007ffff71b1a54 in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007ffff712016b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3  0x00007ffff71840ca in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4  0x00007ffff7183a41 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007ffff6f763ec in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:444
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737336795440, -7221697594254877078, -120, 0, 140737488344000, 140737305042944, 7221675287420149354, 7221677729832050282}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = "" = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6  0x00007ffff6ff6a5c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.

Thread 1 (Thread 0x7ffff6222ac0 (LWP 28782) "engrampa"):
#0  0x0000555555581fbe in process_metadata_line (comm=0x555555b20350, line=0x555555a89150 "    1083 bytes,    26 lines      control") at ./src/fr-command-dpkg.c:76
        fdata = 0x555555ac9dd0
        fields = 0x555555b082a0
        name = <optimized out>
        fdata = <optimized out>
        fields = <optimized out>
        name = <optimized out>
        __func__ = <optimized out>
        _g_boolean_var_10 = <optimized out>
#1  process_data_line (line=0x555555a89150 "    1083 bytes,    26 lines      control", data="" at ./src/fr-command-dpkg.c:110
        fdata = <optimized out>
        comm = 0x555555b20350
        fields = <optimized out>
        time_s = <optimized out>
        name = <optimized out>
        __func__ = "process_data_line"
#2  0x000055555558e12a in fr_channel_data_read (channel=channel@entry=0x55555576b160) at ./src/fr-process.c:144
        line = 0x555555a89150 "    1083 bytes,    26 lines      control"
        length = 41
        terminator_pos = 40
#3  0x000055555558fca8 in check_child (data="" at ./src/fr-process.c:857
        process = <optimized out>
        info = 0x555555aa46a0
        pid = <optimized out>
        status = 0
        continue_process = <optimized out>
        channel_error = <optimized out>
        __FUNCTION__ = "check_child"
#4  0x00007ffff715702e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5  0x00007ffff71530d9 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#6  0x00007ffff7156317 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#7  0x00007ffff7156930 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#8  0x00007ffff7388b7d in g_application_run () from /lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#9  0x000055555556b45a in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:357
        context = <optimized out>
        error = 0x0
        app = 0x5555556f37f0
        client = <optimized out>
        status = <optimized out>
-------------------------------------------------


Regards,
Sergio

Reply to: