Likely double-free in _thunar_folder_load_content_types_finished()
I had this crash trying to reproduce #631 (possible steps to reproduce given in #631 (comment 84686)): it seems that folder->content_type_job
is not reset in all cases:
Core was generated by `/opt/bin/thunar.orig'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000074035a3e3d49 in g_type_check_instance_is_fundamentally_a (type_instance=0x1000000010, fundamental_type=80) at ../glib/gobject/gtype.c:4151
4151 if (!type_instance || !type_instance->g_class)
[Current thread is 1 (Thread 0x740358c34a00 (LWP 9337))]
(gdb) bt
#0 0x000074035a3e3d49 in g_type_check_instance_is_fundamentally_a (type_instance=0x1000000010, fundamental_type=Python Exception <class 'gdb.error'>: value has been optimized out
) at ../glib/gobject/gtype.c:4151
#1 0x000074035a3cb4a0 in g_object_unref (_object=0x1000000010) at ../glib/gobject/gobject.c:4287
#2 0x00005ad82b0944d2 in _thunar_folder_load_content_types_finished (folder=0x5ad82c539070, job=<optimized out>) at thunar-folder.c:698
#3 0x000074035a3bc730 in g_closure_invoke (closure=0x5ad82c91e1f0, return_value=0x0, n_param_values=1, param_values=0x7ffd973865b0, invocation_hint=0x7ffd97386500) at ../glib/gobject/gclosure.c:834
#4 0x000074035a3eb896 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffd97386680, detail=detail@entry=0, instance=instance@entry=0x5ad82c91c660, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd973865b0)
at ../glib/gobject/gsignal.c:3879
#5 0x000074035a3dc7a2 in signal_emit_valist_unlocked (instance=instance@entry=0x5ad82c91c660, signal_id=signal_id@entry=536, detail=detail@entry=0, var_args=var_args@entry=0x7ffd973867e0)
at ../glib/gobject/gsignal.c:3511
#6 0x000074035a3dc9d7 in g_signal_emit_valist (instance=0x5ad82c91c660, signal_id=536, detail=0, var_args=var_args@entry=0x7ffd973867e0) at ../glib/gobject/gsignal.c:3254
#7 0x000074035a3dca94 in g_signal_emit (instance=instance@entry=0x5ad82c91c660, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3574
#8 0x000074035b17aa91 in exo_job_finished (job=0x5ad82c91c660) at exo-job.c:437
#9 exo_job_async_ready (user_data=0x5ad82c91c660) at exo-job.c:274
#10 0x000074035a2b8179 in g_main_dispatch (context=0x5ad82bf1fc40) at ../glib/glib/gmain.c:3344
#11 0x000074035a31739f in g_main_context_dispatch_unlocked (context=0x5ad82bf1fc40) at ../glib/glib/gmain.c:4152
#12 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x5ad82bf1fc40, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4217
#13 0x000074035a2b76f2 in g_main_context_iteration (context=context@entry=0x5ad82bf1fc40, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4282
#14 0x000074035a4e1e06 in g_application_run (application=0x5ad82bf33e30, argc=<optimized out>, argv=0x7ffd97386bd8) at ../glib/gio/gapplication.c:2712
#15 0x00005ad82b067d91 in main (argc=1, argv=0x7ffd97386bd8) at main.c:86