raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1733b09e1b33b8a25dfee3731e8097db3b97b136
commit 1733b09e1b33b8a25dfee3731e8097db3b97b136 Author: Minkyoung Kim <mer....@samsung.com> Date: Wed Jul 13 21:00:07 2016 +0900 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 --- src/modules/ecore_evas/engines/extn/ecore_evas_extn.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c index 06f1ca8..d705df3 100644 --- a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c +++ b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c @@ -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: --