From cb23fd2af2d07c17ae2d6c08a7c87cf8abf45814 Mon Sep 17 00:00:00 2001 From: Duna Oh Date: Tue, 15 Dec 2015 10:02:49 -0500 Subject: ecore-drm: Fix failure of setting/closing evdev->fd which causes fd leak Summary: When a input device is plugged in, _cb_open_restricted() is called before creating evdev. So setting fd value on evdev was failed in _cb_open_restricted() and also closing evdev->fd was invalid. Using a eina_hash which has 'path-fd' pairs, we can find fd value after evdev is created. @fix Test Plan: (1) Multiple input devices are connected. Their evdev->fd remains zero or initial value. (2) When one of those devices are plugged out, fd leak would happen. Reviewers: raster, zmike, gwanglim, stefan_schmidt, devilhorns, ManMower Subscribers: cedric, jpeg, Jeon, input.hacker Differential Revision: https://phab.enlightenment.org/D3428 --- src/lib/ecore_drm/ecore_drm_private.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/lib/ecore_drm/ecore_drm_private.h') diff --git a/src/lib/ecore_drm/ecore_drm_private.h b/src/lib/ecore_drm/ecore_drm_private.h index aa97a2025f..fbc6bda00e 100644 --- a/src/lib/ecore_drm/ecore_drm_private.h +++ b/src/lib/ecore_drm/ecore_drm_private.h @@ -289,4 +289,6 @@ void _ecore_drm_dbus_device_release(uint32_t major, uint32_t minor); Eina_Bool _ecore_drm_dbus_session_take(void); Eina_Bool _ecore_drm_dbus_session_release(void); +void _ecore_drm_inputs_init(void); +void _ecore_drm_inputs_shutdown(void); #endif -- cgit v1.2.1