[evolution-data-server] Avoid crash under e_source_set_connection_status()
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Avoid crash under e_source_set_connection_status()
- Date: Thu, 19 Feb 2015 13:02:54 +0000 (UTC)
commit 04deadd27e56077bcfd55950f1349d008776e5f5
Author: Milan Crha <mcrha redhat com>
Date: Thu Feb 19 13:59:09 2015 +0100
Avoid crash under e_source_set_connection_status()
It didn't check whether the ESource's corresponding GDBus object
is valid, thus it crashed when the source was removed meanwhile.
libedataserver/e-source.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
---
diff --git a/libedataserver/e-source.c b/libedataserver/e-source.c
index 0160442..822a551 100644
--- a/libedataserver/e-source.c
+++ b/libedataserver/e-source.c
@@ -3612,10 +3612,15 @@ e_source_set_connection_status (ESource *source,
EDBusSource *dbus_source;
dbus_object = e_source_ref_dbus_object (E_SOURCE (source));
- dbus_source = e_dbus_object_get_source (E_DBUS_OBJECT (dbus_object));
- e_dbus_source_set_connection_status (dbus_source, enum_value->value_nick);
- g_object_unref (dbus_source);
- g_object_unref (dbus_object);
+ if (dbus_object) {
+ dbus_source = e_dbus_object_get_source (E_DBUS_OBJECT (dbus_object));
+ if (dbus_source) {
+ e_dbus_source_set_connection_status (dbus_source, enum_value->value_nick);
+ g_object_unref (dbus_source);
+ }
+
+ g_object_unref (dbus_object);
+ }
} else {
g_warning ("%s: Unknown connection status: %x", G_STRFUNC, connection_status);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]