From 20c4c73adf290b0b6b72bead9f94832a4b83fcbc Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 31 May 2013 14:53:42 +1000 Subject: [PATCH] Don't allow re-setting the fd If a caller needs to re-init a device, libevdev_new_from_fd() is a better choice. Signed-off-by: Peter Hutterer --- libevdev/libevdev.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c index aba8627..bdde2a9 100644 --- a/libevdev/libevdev.c +++ b/libevdev/libevdev.c @@ -205,17 +205,8 @@ libevdev_set_fd(struct libevdev* dev, int fd) int rc; int i; - if (dev->fd == -1) { - libevdev_log_func_t log; - - /* these may be set before set_fd */ - log = dev->log; - - memset(dev, 0, sizeof(*dev)); - - dev->fd = -1; - dev->log = log; - } + if (dev->fd != -1) + return -EBADF; rc = ioctl(fd, EVIOCGBIT(0, sizeof(dev->bits)), dev->bits); if (rc < 0)