eldbus - only unref client conns that are not null after dispatch
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Wed, 3 Jul 2013 23:41:45 +0000 (08:41 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Wed, 3 Jul 2013 23:41:45 +0000 (08:41 +0900)
src/lib/eldbus/eldbus_core.c
src/lib/ethumb_client/ethumb_client.c

index 040fe4c..a92d1e2 100644 (file)
@@ -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;
 }
 
index cbd3c96..3d62fa1 100644 (file)
@@ -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);