Crash when saving new file
Submitted by Martin Schlemmer
Link to original bug (#665044)
Description
Created attachment 202291 glade3-3.8.1-null-filename-on-mtime.patch
Basically sending a null to g_stat() gets to g_utf8_to_utf16() and do not trigger g_return_val_if_fail() with release build.
Backtrace:
Breakpoint 1, g_return_if_fail_warning (log_domain=0x68694096 "GLib", pretty_function=0x686941f9 "g_utf8_to_utf16",
expression=0x686940b2 "str != NULL") at gmessages.c:586
586 g_log (log_domain,
(gdb) bt
#0 g_return_if_fail_warning (log_domain=0x68694096 "GLib", pretty_function=0x686941f9 "g_utf8_to_utf16",
expression=0x686940b2 "str != NULL") at gmessages.c:586
#1 0x68623965 in g_utf8_to_utf16 (str=0x0, len=-1, items_read=0x0, items_written=0x0, error=0x0) at gutf8.c:1415
#2 0x6861157c in g_stat (filename=0x0, buf=0x28edf8) at gstdio.c:473
#3 0x62dcaee5 in glade_util_get_file_mtime (filename=0x0, error=0x0) at glade-utils.c:1851
#4 0x0040338f in save (window=0x225f068, project=0x31940b0, path=0x22ae310 "D:\\Temp\\Unsaved 2.glade")
at glade-window.c:1060
#5 0x00403a68 in save_as (window=0x225f068) at glade-window.c:1232
#6 0x00403b23 in save_cb (action=0x2258d40, window=0x225f068) at glade-window.c:1259
#7 0x63a5b82b in g_cclosure_marshal_VOID__VOID (closure=0x22ce488, return_value=0x0, n_param_values=1,
param_values=0x2321e28, invocation_hint=0x28f00c, marshal_data=0x0) at gmarshal.c:79
#8 0x63a461fb in g_closure_invoke (closure=0x22ce488, return_value=0x0, n_param_values=1, param_values=0x2321e28,
invocation_hint=0x28f00c) at gclosure.c:767
#9 0x63a5b189 in signal_emit_unlocked_R (node=0x4888338, detail=0, instance=0x2258d40, emission_return=0x0,
instance_and_params=0x2321e28) at gsignal.c:3252
#10 0x63a5a6ff in g_signal_emit_valist (instance=0x2258d40, signal_id=339, detail=0, var_args=0x28f1ec "\006")
at gsignal.c:2983
#11 0x63a5a9a1 in g_signal_emit (instance=0x2258d40, signal_id=339, detail=0) at gsignal.c:3040
#12 0x6178e8c7 in _gtk_action_emit_activate (action=0x2258d40) at gtkaction.c:794
#13 0x6178e991 in gtk_action_activate (action=0x2258d40) at gtkaction.c:824
#14 0x6198f387 in button_clicked (widget=0x318e670, button=0x31951c0) at gtktoolbutton.c:771
#15 0x63a5b82b in g_cclosure_marshal_VOID__VOID (closure=0x47a9740, return_value=0x0, n_param_values=1,
param_values=0x2321cd8, invocation_hint=0x28f36c, marshal_data=0x0) at gmarshal.c:79
#16 0x63a461fb in g_closure_invoke (closure=0x47a9740, return_value=0x0, n_param_values=1, param_values=0x2321cd8,
invocation_hint=0x28f36c) at gclosure.c:767
#17 0x63a5b189 in signal_emit_unlocked_R (node=0x3204aa0, detail=0, instance=0x318e670, emission_return=0x0,
instance_and_params=0x2321cd8) at gsignal.c:3252
#18 0x63a5a6ff in g_signal_emit_valist (instance=0x318e670, signal_id=126, detail=0, var_args=0x28f54c "")
at gsignal.c:2983
#19 0x63a5a9a1 in g_signal_emit (instance=0x318e670, signal_id=126, detail=0) at gsignal.c:3040
#20 0x617ad7a2 in gtk_button_clicked (button=0x318e670) at gtkbutton.c:1128
#21 0x617aeddb in gtk_real_button_released (button=0x318e670) at gtkbutton.c:1725
#22 0x63a5b82b in g_cclosure_marshal_VOID__VOID (closure=0x32049a8, return_value=0x0, n_param_values=1,
param_values=0x2321af8, invocation_hint=0x28f6cc, marshal_data=0x617aed9a) at gmarshal.c:79
#23 0x63a464b0 in g_type_class_meta_marshal (closure=0x32049a8, return_value=0x0, n_param_values=1,
param_values=0x2321af8, invocation_hint=0x28f6cc, marshal_data=0x1a4) at gclosure.c:878
#24 0x63a461fb in g_closure_invoke (closure=0x32049a8, return_value=0x0, n_param_values=1, param_values=0x2321af8,
invocation_hint=0x28f6cc) at gclosure.c:767
#25 0x63a5ae94 in signal_emit_unlocked_R (node=0x32049f8, detail=0, instance=0x318e670, emission_return=0x0,
instance_and_params=0x2321af8) at gsignal.c:3182
#26 0x63a5a6ff in g_signal_emit_valist (instance=0x318e670, signal_id=125, detail=0, var_args=0x28f8ac "\215?▌c\001")
at gsignal.c:2983
#27 0x63a5a9a1 in g_signal_emit (instance=0x318e670, signal_id=125, detail=0) at gsignal.c:3040
#28 0x617ad709 in gtk_button_released (button=0x318e670) at gtkbutton.c:1120
#29 0x617aeb76 in gtk_button_button_release (widget=0x318e670, event=0x30f54d8) at gtkbutton.c:1617
#30 0x6188d720 in _gtk_marshal_BOOLEAN__BOXED (closure=0x2266a40, return_value=0x28fa28, n_param_values=2,
param_values=0x230db00, invocation_hint=0x28fa4c, marshal_data=0x617aeb43) at gtkmarshalers.c:86
#31 0x63a464b0 in g_type_class_meta_marshal (closure=0x2266a40, return_value=0x28fa28, n_param_values=2,
param_values=0x230db00, invocation_hint=0x28fa4c, marshal_data=0xb4) at gclosure.c:878
#32 0x63a461fb in g_closure_invoke (closure=0x2266a40, return_value=0x28fa28, n_param_values=2,
param_values=0x230db00, invocation_hint=0x28fa4c) at gclosure.c:767
#33 0x63a5b30a in signal_emit_unlocked_R (node=0x2266b80, detail=0, instance=0x318e670, emission_return=0x28fb68,
instance_and_params=0x230db00) at gsignal.c:3290
#34 0x63a5a769 in g_signal_emit_valist (instance=0x318e670, signal_id=33, detail=0, var_args=0x28fc30 "Hü(")
at gsignal.c:2993
#35 0x63a5a9a1 in g_signal_emit (instance=0x318e670, signal_id=33, detail=0) at gsignal.c:3040
#36 0x619f6b1e in gtk_widget_event_internal (widget=0x318e670, event=0x30f54d8) at gtkwidget.c:4984
#37 0x619f66c4 in gtk_widget_event (widget=0x318e670, event=0x30f54d8) at gtkwidget.c:4781
#38 0x6188bf62 in gtk_propagate_event (widget=0x318e670, event=0x30f54d8) at gtkmain.c:2489
#39 0x6188abad in gtk_main_do_event (event=0x30f54d8) at gtkmain.c:1684
#40 0x6c38c7f5 in gdk_event_dispatch (source=0x2262cd8, callback=0, user_data=0x0) at gdkevents-win32.c:3605
#41 0x685f1a9c in g_main_dispatch (context=0x2262d88) at gmain.c:2441
#42 0x685f2a01 in g_main_context_dispatch (context=0x2262d88) at gmain.c:3014
#43 0x685f2d42 in g_main_context_iterate (context=0x2262d88, block=1, dispatch=1, self=0xba4ea8) at gmain.c:3092
#44 0x685f32db in g_main_loop_run (loop=0x30ec5d0) at gmain.c:3300
#45 0x6188a2a3 in gtk_main () at gtkmain.c:1256
#46 0x004092d4 in main (argc=1, argv=0xba4e88) at main.c:185
(gdb)
Attachment 202291, "glade3-3.8.1-null-filename-on-mtime.patch":
glade3-3.8.1-null-filename-on-mtime.patch