summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMinkyoung Kim <mer.kim@samsung.com>2016-07-13 21:00:07 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-07-13 21:00:07 +0900
commit1733b09e1b33b8a25dfee3731e8097db3b97b136 (patch)
treec3f87b39845b49fe84aa3ce0749f9c6ee972b9ea /src
parent9f77c5ab55316ea27dcac7df48f8d4abcb1f1c02 (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/modules/ecore_evas/engines/extn/ecore_evas_extn.c2
1 files changed, 2 insertions, 0 deletions
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 06f1ca8800..d705df3ee1 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)
986 if (!extn) return ECORE_CALLBACK_PASS_ON; 986 if (!extn) return ECORE_CALLBACK_PASS_ON;
987 if (e->major != MAJOR) 987 if (e->major != MAJOR)
988 return ECORE_CALLBACK_PASS_ON; 988 return ECORE_CALLBACK_PASS_ON;
989 if (ee != ecore_ipc_server_data_get(extn->ipc.server))
990 return ECORE_CALLBACK_PASS_ON;
989 switch (e->minor) 991 switch (e->minor)
990 { 992 {
991 case OP_UPDATE: 993 case OP_UPDATE: