After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 657819 - Crash when hitting 'Cancel' in the add dialog
Crash when hitting 'Cancel' in the add dialog
Status: RESOLVED FIXED
Product: gnome-online-accounts
Classification: Core
Component: general
unspecified
Other Linux
: Normal critical
: ---
Assigned To: GNOME Online Accounts maintainer(s)
GNOME Online Accounts maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2011-08-31 13:27 UTC by Guillaume Desmottes
Modified: 2011-09-04 20:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Online accounts: avoid an extraneous unref (1.09 KB, patch)
2011-09-04 20:49 UTC, Matthias Clasen
committed Details | Review

Description Guillaume Desmottes 2011-08-31 13:27:16 UTC
- Hit the '+' button
- A dialog appears offering to create either a Facebook or Google account
- Hit the cancel button
- crash


GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed


  • #0 g_logv
    at gmessages.c line 570
  • #1 g_log
    at gmessages.c line 591
  • #2 g_return_if_fail_warning
  • #3 g_object_unref
    at gobject.c line 2680
  • #4 g_list_foreach
    at glist.c line 938
  • #5 on_toolbar_add_button_clicked
    at cc-online-accounts-panel.c line 568
  • #6 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #7 g_closure_invoke
    at gclosure.c line 773
  • #8 signal_emit_unlocked_R
    at gsignal.c line 3271
  • #9 g_signal_emit_valist
    at gsignal.c line 3002
  • #10 g_signal_emit_by_name
    at gsignal.c line 3096
  • #11 button_clicked
    at gtktoolbutton.c line 814
  • #12 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #13 g_closure_invoke
    at gclosure.c line 773
  • #14 signal_emit_unlocked_R
    at gsignal.c line 3271
  • #15 g_signal_emit_valist
    at gsignal.c line 3002
  • #16 g_signal_emit
    at gsignal.c line 3059
  • #17 gtk_button_clicked
    at gtkbutton.c line 1197
  • #18 gtk_real_button_released
    at gtkbutton.c line 1826
  • #19 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 85
  • #20 g_type_class_meta_marshal
    at gclosure.c line 884
  • #21 g_closure_invoke
    at gclosure.c line 773
  • #22 signal_emit_unlocked_R
    at gsignal.c line 3201
  • #23 g_signal_emit_valist
    at gsignal.c line 3002
  • #24 g_signal_emit
    at gsignal.c line 3059
  • #25 gtk_button_released
    at gtkbutton.c line 1183
  • #26 gtk_button_button_release
    at gtkbutton.c line 1718
  • #27 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #28 g_type_class_meta_marshal
    at gclosure.c line 884
  • #29 g_closure_invoke
    at gclosure.c line 773
  • #30 signal_emit_unlocked_R
    at gsignal.c line 3309
  • #31 g_signal_emit_valist
    at gsignal.c line 3012
  • #32 g_signal_emit
    at gsignal.c line 3059
  • #33 gtk_widget_event_internal
    at gtkwidget.c line 6128
  • #34 gtk_widget_event
    at gtkwidget.c line 5844
  • #35 gtk_propagate_event
    at gtkmain.c line 2614
  • #36 gtk_main_do_event
    at gtkmain.c line 1889
  • #37 _gdk_event_emit
    at gdkevents.c line 71
  • #38 gdk_event_source_dispatch
    at gdkeventsource.c line 360
  • #39 g_main_dispatch
    at gmain.c line 2439
  • #40 g_main_context_dispatch
    at gmain.c line 3008
  • #41 g_main_context_iterate
    at gmain.c line 3086
  • #42 g_main_loop_run
    at gmain.c line 3294
  • #43 gtk_main
    at gtkmain.c line 1362
  • #44 gtk_application_run_mainloop
    at gtkapplication.c line 112
  • #45 g_application_run
    at gapplication.c line 1325
  • #46 main
    at control-center.c line 196

Comment 1 Matthias Clasen 2011-09-04 20:49:38 UTC
The following fix has been pushed:
a53ebeb Online accounts: avoid an extraneous unref
Comment 2 Matthias Clasen 2011-09-04 20:49:42 UTC
Created attachment 195639 [details] [review]
Online accounts: avoid an extraneous unref

When bailing out early, the cleanup path is unreffing the provider
because the variable was used in the loop. We need to set it back
to NULL there.