Crashes trying to unpack ZIP file
Using gnome-autoar 0.3.3 (and git), I get a crash in nautilus trying to "extract all" on a particular zip file.
The first warning is:
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: autoar_extractor_step_scan_toplevel: 31: pathname = Press Release/Alex Kidd Release Date Press Release_Final.docx
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: autoar_extractor_do_sanitize_pathname: /home/hadess/Downloads/Press Release/Alex Kidd Release Date Press Release_Final.docx
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: libarchive_read_close_cb: called
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: libarchive_read_close_cb: ARCHIVE_OK
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: autoar_extractor_step_scan_toplevel: files = 32
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: autoar_extractor_run: Step 0 End
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: autoar_extractor_run: Step 1 Begin
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: autoar_extractor_step_set_destination: called
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: autoar_extractor_run: Step 1 End
** (org.gnome.Nautilus:40686): DEBUG: 11:08:35.606: autoar_extractor_run: Step 2 Begin
(org.gnome.Nautilus:40686): GLib-GIO-CRITICAL **: 11:08:35.606: g_file_resolve_relative_path: assertion 'relative_path != NULL' failed
Thread 10 "pool-org.gnome." received signal SIGTRAP, Trace/breakpoint trap.
[Switching to LWP 40700]
g_logv (log_domain=0x7ffff73138f8 "GLib-GIO", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../../../../../Projects/jhbuild/glib/glib/gmessages.c:1413
1413 ../../../../../Projects/jhbuild/glib/glib/gmessages.c: No such file or directory.
(gdb) bt
#0 g_logv (log_domain=0x7ffff73138f8 "GLib-GIO", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../../../../../Projects/jhbuild/glib/glib/gmessages.c:1413
#1 0x00007ffff7ee3aad in g_log (log_domain=log_domain@entry=0x7ffff73138f8 "GLib-GIO", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff7f39ede "%s: assertion '%s' failed") at ../../../../../Projects/jhbuild/glib/glib/gmessages.c:1451
#2 0x00007ffff7ee4299 in g_return_if_fail_warning (log_domain=log_domain@entry=0x7ffff73138f8 "GLib-GIO", pretty_function=pretty_function@entry=0x7ffff73199e0 <__func__.102> "g_file_resolve_relative_path", expression=expression@entry=0x7ffff7318963 "relative_path != NULL") at ../../../../../Projects/jhbuild/glib/glib/gmessages.c:2883
#3 0x00007ffff7224dfa in g_file_resolve_relative_path (file=0x1e12480, relative_path=0x0) at ../../../../../Projects/jhbuild/glib/gio/gfile.c:999
#4 0x00007ffff70159ba in autoar_extractor_step_decide_destination (self=0x1e46b10) at /home/hadess/Projects/jhbuild/gnome-autoar/gnome-autoar/autoar-extractor.c:1803
#5 0x00007ffff701642d in autoar_extractor_run (self=0x1e46b10) at /home/hadess/Projects/jhbuild/gnome-autoar/gnome-autoar/autoar-extractor.c:2062
#6 0x00007ffff7016504 in autoar_extractor_start (self=0x1e46b10, cancellable=0x18996a0) at /home/hadess/Projects/jhbuild/gnome-autoar/gnome-autoar/autoar-extractor.c:2093
#7 0x000000000046b4df in extract_task_thread_func (task=<optimized out>, source_object=<optimized out>, task_data=0x1e24d40, cancellable=<optimized out>) at ../../../../Projects/jhbuild/nautilus/src/nautilus-file-operations.c:8656
#8 0x00007ffff727768c in g_task_thread_pool_thread (thread_data=0x1e10350, pool_data=<optimized out>) at ../../../../../Projects/jhbuild/glib/gio/gtask.c:1430
#9 0x00007ffff7f0668d in g_thread_pool_thread_proxy (data=<optimized out>) at ../../../../../Projects/jhbuild/glib/glib/gthreadpool.c:354
#10 0x00007ffff7f05dc5 in g_thread_proxy (data=0xb69810) at ../../../../../Projects/jhbuild/glib/glib/gthread.c:826
#11 0x00007ffff6e22299 in start_thread () from /lib64/libpthread.so.0
#12 0x00007ffff6d4a353 in ?? () from /lib64/libc.so.6
If I ignore warnings, we get a long recursive loop of file path checks with more warnings followed by a crash.