Crash when reloading unmounted directory in icon view
Version information
cff7db0b compiled on Arch Linux
Steps to reproduce
-
gio mount localtest:///-
localtest:///is a test backend built into gvfs
-
thunar localtest:///tmp- In Thunar, ensure that "Remember view settings for each folder" is checked in Edit > Preferences
- In Thunar, select View > Icon View
- I don't see the crash with list view or compact view
gio mount -u localtest:///- In Thunar, select View > Reload to trigger a crash
Current behavior
Thunar crashes
Expected outcome
Thunar handles the missing directory like it does with compact view and list view.
Backtrace
ERROR: AddressSanitizer: heap-use-after-free on address 0x7d0b1c423570
READ of size 8 at 0x7d0b1c423570 thread T0
#0 0x564908329060 in thunar_standard_view_reload thunar/thunar/thunar-standard-view.c:2358:22
#1 0x5649083994be in thunar_view_reload thunar/thunar/thunar-view.c:232:3
#2 0x5649083b0683 in thunar_window_reload thunar/thunar/thunar-window.c:2140:7
#3 0x5649081cb95c in _thunar_marshal_BOOLEAN__BOOLEAN thunar/builddir/thunar/thunar-marshal.c:84:14
#4 0x7f6b2630a7fa in g_type_class_meta_marshal glib/gobject/gclosure.c:1118:5
#5 0x7f6b26308be2 in g_closure_invoke glib/gobject/gclosure.c:916:7
#6 0x7f6b2637b911 in signal_emit_unlocked_R glib/gobject/gsignal.c:3969:7
#7 0x7f6b26376dca in signal_emit_valist_unlocked glib/gobject/gsignal.c:3574:7
#8 0x7f6b263781b0 in g_signal_emit_valist glib/gobject/gsignal.c:3304:7
#9 0x7f6b263781b0 in g_signal_emit glib/gobject/gsignal.c:3624:3
#10 0x5649083cb83f in thunar_window_action_reload thunar/thunar/thunar-window.c:4190:3
[...snip...]
0x7d0b1c423570 is located 1264 bytes inside of 1280-byte region [0x7d0b1c423080,0x7d0b1c423580)
freed by thread T0 here:
#0 0x7f6b27374a6d in free
#1 0x7f6b25f9deb8 in g_free_sized glib/glib/gmem.c:236:3
#2 0x7f6b2638ae52 in g_type_free_instance glib/gobject/gtype.c:1979:5
#3 0x7f6b26323cd1 in g_object_unref glib/gobject/gobject.c:4921:3
#4 0x7f6b2631d863 in g_clear_object glib/gobject/gobject.c:4945:3
#5 0x7f6b2631d863 in g_value_object_free_value glib/gobject/gobject.c:5357:3
#6 0x7f6b263b4030 in g_value_unset glib/gobject/gvalue.c:213:5
#7 0x7f6b26377516 in signal_emit_valist_unlocked glib/gobject/gsignal.c:3595:3
#8 0x7f6b263781b0 in g_signal_emit_valist glib/gobject/gsignal.c:3304:7
#9 0x7f6b263781b0 in g_signal_emit glib/gobject/gsignal.c:3624:3
#10 0x564908249635 in thunar_navigator_change_directory thunar/thunar/thunar-navigator.c:220:3
#11 0x56490839f6fa in thunar_window_update_directories thunar/thunar/thunar-window.c:3439:13
#12 0x56490832773b in thunar_standard_view_current_directory_destroy thunar/thunar/thunar-standard-view.c:2862:3
#13 0x564908328f4b in thunar_standard_view_reload thunar/thunar/thunar-standard-view.c:2353:9
#14 0x5649083994be in thunar_view_reload thunar/thunar/thunar-view.c:232:3
#15 0x5649083b0683 in thunar_window_reload thunar/thunar/thunar-window.c:2140:7
#16 0x5649081cb95c in _thunar_marshal_BOOLEAN__BOOLEAN thunar/builddir/thunar/thunar-marshal.c:84:14
#17 0x7f6b2630a7fa in g_type_class_meta_marshal glib/gobject/gclosure.c:1118:5
#18 0x7f6b26308be2 in g_closure_invoke glib/gobject/gclosure.c:916:7
#19 0x7f6b2637b911 in signal_emit_unlocked_R glib/gobject/gsignal.c:3969:7
#20 0x7f6b26376dca in signal_emit_valist_unlocked glib/gobject/gsignal.c:3574:7
#21 0x7f6b263781b0 in g_signal_emit_valist glib/gobject/gsignal.c:3304:7
#22 0x7f6b263781b0 in g_signal_emit glib/gobject/gsignal.c:3624:3
#23 0x5649083cb83f in thunar_window_action_reload thunar/thunar/thunar-window.c:4190:3
[...snip...]
previously allocated by thread T0 here:
#0 0x7f6b27375d6d in calloc
#1 0x7f6b25f9ddfa in g_malloc0 glib/glib/gmem.c:133:13
#2 0x7f6b263892e1 in g_type_create_instance glib/gobject/gtype.c:1882:17
#3 0x7f6b26336546 in g_object_constructor glib/gobject/gobject.c:3040:23
#4 0x56490830d067 in thunar_standard_view_constructor thunar/thunar/thunar-standard-view.c:1083:12
#5 0x7f6b2633b0d9 in g_object_new_with_custom_constructor glib/gobject/gobject.c:2586:12
#6 0x7f6b26327dba in g_object_new_internal glib/gobject/gobject.c:2664:12
#7 0x7f6b26326c6f in g_object_new_valist glib/gobject/gobject.c:3004:16
#8 0x7f6b2632578b in g_object_new glib/gobject/gobject.c:2479:12
#9 0x56490839d2c0 in thunar_window_create_view thunar/thunar/thunar-window.c:2986:10
#10 0x5649083a44e8 in thunar_window_replace_view thunar/thunar/thunar-window.c:4625:14
#11 0x5649083a0d4e in thunar_window_action_view_changed thunar/thunar/thunar-window.c:4665:3
#12 0x5649083d0288 in thunar_window_action_icon_view thunar/thunar/thunar-window.c:4545:5
[...snip...]
Additional information
N/A
Edited by correctmost