cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e93d6f90db2b4b2bf281e9eb810aaa2338ba2737

commit e93d6f90db2b4b2bf281e9eb810aaa2338ba2737
Author: Cedric Bail <[email protected]>
Date:   Fri Jul 15 17:02:03 2016 -0700

    eio: avoid access after death of eio handler due to inotify triggering 
IN_IGNORED event.
---
 src/lib/eio/eio_monitor_inotify.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/lib/eio/eio_monitor_inotify.c 
b/src/lib/eio/eio_monitor_inotify.c
index faa34b3..2222a56 100644
--- a/src/lib/eio/eio_monitor_inotify.c
+++ b/src/lib/eio/eio_monitor_inotify.c
@@ -141,6 +141,9 @@ _eio_inotify_handler(void *data EINA_UNUSED, 
Ecore_Fd_Handler *fdh)
         if ((event_size + i) > size) break ;
         i += event_size;
 
+        // No need to waste time looking up for just destroyed handler
+        if ((event->mask & IN_IGNORED)) continue ;
+
         backend = eina_hash_find(_inotify_monitors, &event->wd);
         if (!backend) continue ;
         if (!backend->parent) continue ;
@@ -268,6 +271,8 @@ void eio_monitor_backend_del(Eio_Monitor *monitor)
    monitor->backend = NULL;
    if (!backend) return;
 
+   backend->parent = NULL;
+
    eina_hash_del(_inotify_monitors, &backend->hwnd, backend);
 }
 

-- 


Reply via email to