From: Milan Crha Date: Wed, 9 Jan 2013 14:41:10 +0000 (+0100) Subject: [http calendar] Ref backend inside source_changed_cb() X-Git-Tag: upstream/3.7.4~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9c51a13fafb05af60caeb6ab19e77ca4c715f72a;p=platform%2Fupstream%2Fevolution-data-server.git [http calendar] Ref backend inside source_changed_cb() In certain situation, the backend can be freed while the callback is still in action, then the factory can crash inside cal_backend_http_ensure_uri() or such. --- diff --git a/calendar/backends/http/e-cal-backend-http.c b/calendar/backends/http/e-cal-backend-http.c index 4943810..c2db383 100644 --- a/calendar/backends/http/e-cal-backend-http.c +++ b/calendar/backends/http/e-cal-backend-http.c @@ -781,6 +781,8 @@ source_changed_cb (ESource *source, { g_return_if_fail (E_IS_CAL_BACKEND_HTTP (cbhttp)); + g_object_ref (cbhttp); + if (cbhttp->priv->uri != NULL) { gboolean uri_changed; const gchar *new_uri; @@ -804,6 +806,8 @@ source_changed_cb (ESource *source, g_free (old_uri); } + + g_object_unref (cbhttp); } static void