From 125e2b8ce23b8ceea250ae52ba69cd14af5592f9 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 2 Oct 2008 10:56:04 +0930 Subject: Close fd on DEVICE_OFF. (LP #276887) Leaving the fd open means we still get keyboard events after VT switching away. Coming back, some of these events are replayed on the application that has the current focus. Reproduceable: 1. open terminal, focus. 2. VT switch away 3. type something, preferably a password 4. VT switch back, trigger a mouse event 5. Observe the X server guessing your password. Closing the fd on DEVICE_OFF fixes this. Reopen is handled by the reopen code introduced with commit 9930477cbeb4acfd070ae70894d13ffabfc347b8 Author: Peter Hutterer Date: Tue Aug 26 14:33:40 2008 +0930 Attempt to re-open devices on read errors. Launchpad Bug 276887 --- src/evdev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/evdev.c b/src/evdev.c index b678a0e..149f95d 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1016,6 +1016,8 @@ EvdevProc(DeviceIntPtr device, int what) xf86Msg(X_WARNING, "%s: Release failed (%s)\n", pInfo->name, strerror(errno)); xf86RemoveEnabledDevice(pInfo); + close(pInfo->fd); + pInfo->fd = -1; } if (pEvdev->flags & EVDEV_INITIALIZED) EvdevMBEmuFinalize(pInfo); -- cgit v1.2.3