On Wed, Jul 3, 2013 at 8:42 PM, Carsten Haitzler - Enlightenment Git <
no-re...@enlightenment.org> wrote:

> raster pushed a commit to branch master.
>
> commit bdd57af1136dd6c81244c15b0456ec06d10fa59e
> Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
> Date:   Thu Jul 4 08:41:45 2013 +0900
>
>     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 040fe4c..a92d1e2 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);
>
Huuum I think should be better increase eldbus_connection reference before
call dbus_connection_dispatch().
conn->dbus_conn only will be null if some cb remove the last reference of
eldbus_connection, so this will ran invalid memory.

I will fix this tomorrow at work.

>     return ECORE_CALLBACK_RENEW;
>  }
>
> diff --git a/src/lib/ethumb_client/ethumb_client.c
> b/src/lib/ethumb_client/ethumb_client.c
> index cbd3c96..3d62fa1 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);
>
> --
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
>
> Build for Windows Store.
>
> http://p.sf.net/sfu/windows-dev2dev
>
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to