ecore_ipc: check if client is still alive efore emitting 'del' event.

Using the ecore_ipc_server_example with -m/--single-message, if we
deleted the client from the callback it would find a dead "cl".

As the "cl" handle is removed from svr->clients before it's deleted,
it's safe to check if we have that handle in the list before
proceeding.
This commit is contained in:
Gustavo Sverzut Barbieri 2016-11-23 12:14:57 -02:00
parent 3bc7c502db
commit 715c882073
1 changed files with 1 additions and 0 deletions

View File

@ -889,6 +889,7 @@ _ecore_ipc_event_client_del(void *data EINA_UNUSED, int ev_type EINA_UNUSED, voi
Ecore_Ipc_Client *cl;
cl = ecore_con_client_data_get(e->client);
if (!eina_list_data_find(svr->clients, cl)) return ECORE_CALLBACK_RENEW;
cl->client = NULL;
ecore_ipc_post_event_client_del(cl);