From bdd57af1136dd6c81244c15b0456ec06d10fa59e Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 4 Jul 2013 08:41:45 +0900 Subject: [PATCH] eldbus - only unref client conns that are not null after dispatch --- src/lib/eldbus/eldbus_core.c | 3 ++- src/lib/ethumb_client/ethumb_client.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/eldbus/eldbus_core.c b/src/lib/eldbus/eldbus_core.c index 040fe4c1dc..a92d1e22a0 100644 --- a/src/lib/eldbus/eldbus_core.c +++ b/src/lib/eldbus/eldbus_core.c @@ -772,7 +772,8 @@ eldbus_idler(void *data) dbus_connection_ref(conn->dbus_conn); DBG("Connection@%p: Dispatching", conn); dbus_connection_dispatch(conn->dbus_conn); - dbus_connection_unref(conn->dbus_conn); + // add the if check as dispact may set conn->dbus_conn to NULL in a cb + if (conn->dbus_conn) dbus_connection_unref(conn->dbus_conn); return ECORE_CALLBACK_RENEW; } diff --git a/src/lib/ethumb_client/ethumb_client.c b/src/lib/ethumb_client/ethumb_client.c index cbd3c960fe..3d62fa1205 100644 --- a/src/lib/ethumb_client/ethumb_client.c +++ b/src/lib/ethumb_client/ethumb_client.c @@ -238,7 +238,7 @@ end_connection: obj = eldbus_proxy_object_get(client->proxy); eldbus_proxy_unref(client->proxy); eldbus_object_unref(obj); - eldbus_connection_unref(client->conn); + if (client->conn) eldbus_connection_unref(client->conn); if (client->connect.free_data) client->connect.free_data(client->connect.data);