Segfault when opening a second or third nested archive
file-roller crashes when opening a nested archive, and it's usually on the second or third try that it crashes, not on the first. The archive I'm reproducing with is attached, however I believe anything similar also reproduces it.
nvidia-container_4.6-b199_arm64.deb
Symbolized backtrace:
#0 0x00007f594d73c0b7 in _gtk_widget_get_toplevel (widget=0x56434fe52610) at ../gtk/gtk/gtkwidgetprivate.h:382
#1 gtk_widget_get_screen_unchecked (widget=0x564350aedb30) at ../gtk/gtk/gtkwidget.c:10862
#2 0x00007f594d73c808 in gtk_widget_get_screen (widget=widget@entry=0x564350aedb30)
at ../gtk/gtk/gtkwidget.c:10899
#3 0x00007f594d73d449 in gtk_widget_get_settings (widget=0x564350aedb30) at ../gtk/gtk/gtkwidget.c:11749
#4 0x00007f594d53daee in gtk_css_widget_node_get_style_provider (node=0x564350aedb70)
at ../gtk/gtk/gtkcsswidgetnode.c:247
#5 0x00007f594d51bd3c in gtk_css_node_get_style_provider_or_null (cssnode=0x564350aedb70)
at ../gtk/gtk/gtkcssnode.c:121
#6 gtk_css_node_invalidate_style_provider (cssnode=<optimized out>) at ../gtk/gtk/gtkcssnode.c:1320
#7 0x00007f594d066210 in g_closure_invoke
(closure=0x564350aed1c0, return_value=0x0, n_param_values=1, param_values=0x7fff2034faa0, invocation_hint=0x7fff2034fa20) at ../glib/gobject/gclosure.c:832
#8 0x00007f594d0942f8 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x56434f9496a0, detail=detail@entry=0, instance=instance@entry=0x56434f94df50, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff2034faa0)
at ../glib/gobject/gsignal.c:3812
#9 0x00007f594d084095 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fff2034fc40) at ../glib/gobject/gsignal.c:3565
#10 0x00007f594d084324 in g_signal_emit
(instance=instance@entry=0x56434f94df50, signal_id=<optimized out>, detail=detail@entry=0)
at ../glib/gobject/gsignal.c:3622
#11 0x00007f594d68e911 in _gtk_style_provider_private_changed (provider=0x56434f94df50)
at ../gtk/gtk/gtkstyleproviderprivate.c:113
#12 _gtk_style_cascade_add_provider (cascade=0x56434f94df50, provider=0x564350c461e0, priority=600)
at ../gtk/gtk/gtkstylecascade.c:380
#13 0x00007f594d08f989 in g_type_create_instance (type=<optimized out>) at ../glib/gobject/gtype.c:1983
#14 0x00007f594d076911 in g_object_new_internal
(class=class@entry=0x56434fc376c0, params=params@entry=0x0, n_params=n_params@entry=0)
at ../glib/gobject/gobject.c:2246
#15 0x00007f594d077f40 in g_object_new_with_properties (object_type=Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str
, n_properties=<optimized out>, names=names@entry=0x0, values=values@entry=0x0)
at ../glib/gobject/gobject.c:2409
#16 0x00007f594d078d3a in g_object_new
(object_type=<optimized out>, first_property_name=first_property_name@entry=0x0)
at ../glib/gobject/gobject.c:2055
#17 0x000056434e21bf6a in fr_location_bar_new () at ../file-roller/src/fr-location-bar.c:103
#18 fr_window_construct (window=0x564350cd9670) at ../file-roller/src/fr-window.c:5875
#19 0x000056434e1ea3c0 in fr_application_command_line
(application=<optimized out>, command_line=command_line@entry=0x56434fcb8d20)
at ../file-roller/src/fr-window.c:5993
#20 0x00007f594d126964 in _g_cclosure_marshal_INT__OBJECTv
(closure=0x56434f8890a0, return_value=0x7fff20350250, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x56434f888f50)
at ../glib/gio/gmarshal-internal.c:847
#21 0x00007f594d08423c in _g_closure_invoke_va
(param_types=0x56434f888f50, n_params=<optimized out>, args=0x7fff20350310, instance=0x56434f88c470, return_value=0x7fff20350250, closure=0x56434f8890a0) at ../glib/gobject/gclosure.c:895
#22 g_signal_emit_valist
(instance=instance@entry=0x56434f88c470, signal_id=signal_id@entry=10, detail=<optimized out>, var_args=var_args@entry=0x7fff20350310) at ../glib/gobject/gsignal.c:3472
#23 0x00007f594d084544 in g_signal_emit_by_name
(instance=0x56434f88c470, detailed_signal=detailed_signal@entry=0x7f594d1fa504 "command-line")
at ../glib/gobject/gsignal.c:3664
#24 0x00007f594d18e11f in g_application_impl_method_call
(connection=<optimized out>, sender=<optimized out>, object_path=<optimized out>, interface_name=<optimized out>, method_name=<optimized out>, parameters=<optimized out>, invocation=0x7f59340042e0, user_data=0x56434f95e990) at ../glib/gio/gapplicationimpl-dbus.c:277
#25 0x00007f594d1b6268 in call_in_idle_cb (user_data=0x7f59340042e0) at ../glib/gio/gdbusconnection.c:5000
#26 0x00007f594dd8953b in g_main_dispatch (context=0x56434f88fde0) at ../glib/glib/gmain.c:3460
#27 g_main_context_dispatch (context=0x56434f88fde0) at ../glib/glib/gmain.c:4200
#28 0x00007f594dde6219 in g_main_context_iterate.constprop.0
(context=0x56434f88fde0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4276
#29 0x00007f594dd881a2 in g_main_context_iteration
(context=context@entry=0x56434f88fde0, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4343
#30 0x00007f594d18f3be in g_application_run
(application=application@entry=0x56434f88c470, argc=argc@entry=2, argv=argv@entry=0x7fff20350838)
at ../glib/gio/gapplication.c:2573
#31 0x000056434e1e6a07 in main (argc=2, argv=0x7fff20350838) at ../file-roller/src/main.c:54
Some I think relevant GDB prints:
(gdb) p *widget
$5 = {parent_instance = {g_type_instance = {
g_class = <error reading variable: Cannot access memory at address 0x348b3b34>},
ref_count = 1297212720, qdata = 0x7f594d51e5c0 <gtk_css_node_style_cache_decl_equal>},
priv = 0x100000001}
(gdb) p widget->priv
$4 = (GtkWidgetPrivate *) 0x100000001
Environment:
- Arch Linux, fully updated as of May 17
- file-roller 43.0
- Hyprland (wlroots)
Let me know if there are any other useful details I can add
Edited by Russell Greene