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); } --
