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:

-- 


Reply via email to