From fa465e3177d43e44d3554f3ef5588b7bba0c376c Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 21 Jan 2023 13:02:16 +0100 Subject: uinput_mng: disregard events for removed devices --- uinput_mng | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/uinput_mng b/uinput_mng index 65797fb..b8d60e6 100755 --- a/uinput_mng +++ b/uinput_mng @@ -273,8 +273,13 @@ class PhysDevices(dict): d.write(ecodes.EV_FF, c, ev.value) def process(self, sel_key): + fo = sel_key.fileobj + if not fo.path in self: + self._logger.debug("Process request for removed device %s", str(fo)) + return + try: - for ev in sel_key.fileobj.read(): + for ev in fo.read(): self._logger.debug('phys->uinput: %s', ev) if ev.type == ecodes.EV_FF: @@ -284,8 +289,8 @@ class PhysDevices(dict): self.uinput_dev.write_event(ev) except OSError as e: self._logger.error('Error reading from device "%s": %s', - str(sel_key.fileobj), os.strerror(e.errno)) - self.remove(sel_key.fileobj.path) + str(fo), os.strerror(e.errno)) + self.remove(fo.path) parser = argparse.ArgumentParser() -- cgit v1.2.3