reject deleted clients from x11 sync alarm event callback

E_Client->comp_data is null after a client has been deleted, so
attempting to handle events which require the dereferencing of this
pointer after a client has been deleted will result in a crash

these events should be rejected after delete regardless, since at this
time the compositor has stopped handling events for the client

ref f42c6aa187
This commit is contained in:
Mike Blumenkrantz 2015-10-15 12:40:00 -04:00
parent 72b7860cf6
commit 988df882ea
1 changed files with 1 additions and 1 deletions

View File

@ -2352,7 +2352,7 @@ _e_comp_x_sync_alarm(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event
Eina_Bool resize = EINA_FALSE;
ec = _e_comp_x_client_find_by_alarm(ev->alarm);
if (!ec) return ECORE_CALLBACK_RENEW;
if ((!ec) || e_object_is_del(E_OBJECT(ec))) return ECORE_CALLBACK_RENEW;
if (ec->netwm.sync.wait)
ec->netwm.sync.wait--;