Menu

#88 Crash when drag&dropping files onto Xfce desktop

v1.0 (example)
open
crash (2)
5
2015-10-19
2015-03-24
Haddayn
No

When I try to drag & drop a file from an archvive onto Xfce desktop, xarchiver crashes.
When launched from the terminal, I see

segmentation fault (core dumped) xarchiver zip.zip

It works normally with a file manager.

Discussion

  • Yanpas

    Yanpas - 2015-05-21

    Also when drag over chrome window

     
  • b2f9h203

    b2f9h203 - 2015-08-12

    I have the same problem with xarchiver

    xarchiver --version
    xarchiver 0.5.4

    dmesg output:
    [ 9938.242444] xarchiver[14898]: segfault at 0 ip 00007fc57d212c8a sp 00007ffde5e15838 error 4 in libc-2.19.so[7fc57d191000+19f000]

    gdb xarchiver
    Program received signal SIGSEGV, Segmentation fault.
    strlen () at ../sysdeps/x86_64/strlen.S:106
    106 ../sysdeps/x86_64/strlen.S: No such file or directory.

    (gdb) bt full
    #0  strlen () at ../sysdeps/x86_64/strlen.S:106
    No locals.
    #1  0x000055555556430e in xa_remove_level_from_path (path=0x0) at string_utils.c:151
            local_path = <optimized out="">
            _local_path = <optimized out="">
    #2  0x00005555555727f4 in drag_data_get (widget=<optimized out="">, dc=<optimized out="">, selection_data=0x7fffffffd1b0, info=<optimized out="">, t=11019238, archive=0x555555b05580) at window.c:1718
            selection = 0x555555ae3e40
            row_list = 0x555555a62440
            names = 0x0
            _destination = 0x555555b37e50 "0u\264UUU"
            destination = 0x0
            to_send = <optimized out="">
    #3  0x00007ffff6e26245 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #4  0x00007ffff6e37f6c in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #5  0x00007ffff6e40778 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #6  0x00007ffff6e40f2a in g_signal_emit_by_name () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #7  0x00007ffff79f5c2e in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
    No symbol table info available.
    #8  0x00007ffff6e26245 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #9  0x00007ffff6e37f6c in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #10 0x00007ffff6e40778 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #11 0x00007ffff6e40f2a in g_signal_emit_by_name () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #12 0x00007ffff79230db in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
    No symbol table info available.
    #13 0x00007ffff7924cce in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
    No symbol table info available.
    #14 0x00007ffff78c0a3f in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
    No symbol table info available.
    #15 0x00007ffff6e26245 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #16 0x00007ffff6e37e62 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #17 0x00007ffff6e40285 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #18 0x00007ffff6e409df in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
    No symbol table info available.
    #19 0x00007ffff79d7d6c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
    No symbol table info available.
    #20 0x00007ffff78bf77b in gtk_main_do_event () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
    No symbol table info available.
    #21 0x00007ffff7532b5c in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
    No symbol table info available.
    #22 0x00007ffff6b50c5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
    No symbol table info available.
    #23 0x00007ffff6b50f48 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
    No symbol table info available.
    #24 0x00007ffff6b51272 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
    No symbol table info available.
    #25 0x00007ffff78be597 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
    No symbol table info available.
    #26 0x0000555555560b02 in ?? ()
    No symbol table info available.
    #27 0x00007ffff677fb45 in __libc_start_main (main=0x5555555606f0, argc=1, argv=0x7fffffffd9f8, init=<optimized out="">, fini=<optimized out="">, rtld_fini=<optimized out="">, stack_end=0x7fffffffd9e8) at libc-start.c:287
            result = <optimized out="">
            unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 2611333869783713903, 93824992285049, 140737488345584, 0, 0, -2611333871082960785, -2611315109466896273}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7fffffffda08, 
                  0x7ffff7ffe1a8}, data = {prev = 0x0, cleanup = 0x0, canceltype = -9720}}}
            not_first_call = <optimized out="">
    #28 0x00005555555611a2 in ?? ()
    No symbol table info available.
    

    Installing xarchiver-dbg only changed the first 2 backtraces. I could try to install other debug infos, if this helps.

     

    Last edit: b2f9h203 2015-08-12
  • shinonome

    shinonome - 2015-08-14

    I have the same problem. I digged a little into source code and here is what I've found.

    When user drag&drops a file onto XFCE desktop, the following steps happen:

    1) window.c: a call to the gdk_property_get (line 1697) writes "xds.txt" to _destination variable. When I drop a file onto a "normal" directory in Thunar or similar file manager, this variable contains a "normal" file URI like "file:///home/user/pictures/xds.txt".

    2) window.c: a call to g_filename_from_uri (line 1715) returns NULL, which is assigned to the desination (w/o underscore at the beginning of the name) variable. According to glib manuals, NULL result indicates error; indeed, when I modified the code to display the error text, g_filename_from_uri returned this message:

    The URI 'xds.txt' is not an absolute URI using the "file" scheme

    3) this variable is then passed as an argument to the function xa_remove_level_from_path from string_utils.c. Inside this function at line 151 there is a call to the strlen function with path argument equal to NULL, which leads to segmentation fault.

    I would love to fix this myself, but have zero experience working with glib and gtk.

     

    Last edit: shinonome 2015-08-14
  • shinonome

    shinonome - 2015-08-14

    I think this should fix it. The patch is for the latest version (0.5.4).

     
  • Yanpas

    Yanpas - 2015-08-14

    The existance of patch is cool, but will it be applied to project? Isn't the xarchiever forsaken?

     
  • Giuseppe Torelli

    Hey guys, the project is not forsaken and I'm still alive. Would you please collect all the latest patches (not the jumbo one) so I can apply one after one and release a fixed version?

     
  • shinonome

    shinonome - 2015-08-14

    Here is all I have found for version 0.5.4. I tried to apply all patches and got two problems:
    1) no-xfce.patch fails to apply.
    2) xarchiver-gtk3-port.patch breaks the build.
    Without them the program builds and runs fine.

     

    Last edit: shinonome 2015-08-14
  • b2f9h203

    b2f9h203 - 2015-10-16

    Because there is still no update, I took the time to install the patches.
    Firstly: they work :) thank you
    Secondly: Sadly it doesn't work perfect. I can't extract multiple files per drag&drop, only single files.

     
  • Giuseppe Torelli

    I knew I shouldn't have applid the patch... ;) by the way, the effort is highly appreciated :)

     

Log in to post a comment.