Crash when reloading unmounted directory in icon view

Version information

cff7db0b compiled on Arch Linux

Steps to reproduce

  1. gio mount localtest:///
    • localtest:/// is a test backend built into gvfs
  2. thunar localtest:///tmp
  3. In Thunar, ensure that "Remember view settings for each folder" is checked in Edit > Preferences
  4. In Thunar, select View > Icon View
    • I don't see the crash with list view or compact view
  5. gio mount -u localtest:///
  6. 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