From 36d9b9f166a700d47322961d1768a6b8d6d5545c 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 (cherry picked from commit ccd48d2f50231e2837e0984833641ac79f327ba4) --- src/evdev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/evdev.c b/src/evdev.c index c0fe244..b12f2ff 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -970,6 +970,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