ecore_evas_extn: Check whether server_data sender is client's server.

Summary:
Sometimes, In ipc_server_data, extn->ipc.server's data is different with e->server's data.

The case is as follows.

Process'A' has a server.
Process'B' has 'A's client(ee address : 0xB0).
Process'B's client die, and 'B's server created. and server's ee address is same with destroyed client's ee(0xB0).
At the same time, 'A's server send the message to 'B's client.
but 'B's client is died! so _ipc_server_data would manipulate 'B's server data.

Test Plan: Tizen Mobile Text.

Reviewers: raster, spacegrapher, jpeg, wonsik, dkdk

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4158
This commit is contained in:
Minkyoung Kim 2016-07-13 21:00:07 +09:00 committed by Carsten Haitzler (Rasterman)
parent 9f77c5ab55
commit 1733b09e1b
1 changed files with 2 additions and 0 deletions

View File

@ -986,6 +986,8 @@ _ipc_server_data(void *data, int type EINA_UNUSED, void *event)
if (!extn) return ECORE_CALLBACK_PASS_ON;
if (e->major != MAJOR)
return ECORE_CALLBACK_PASS_ON;
if (ee != ecore_ipc_server_data_get(extn->ipc.server))
return ECORE_CALLBACK_PASS_ON;
switch (e->minor)
{
case OP_UPDATE: