Return -EBADF for functions that need the fd initialized
authorPeter Hutterer <peter.hutterer@who-t.net>
Sat, 31 Aug 2013 02:37:14 +0000 (12:37 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Sat, 31 Aug 2013 03:17:56 +0000 (13:17 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
libevdev/libevdev.c

index 1c99e1fdb4752e37332bb6ce878b39671a02fc83..867e0083a32624034a9f4d679f2ce4f0efdcf984 100644 (file)
@@ -1130,6 +1130,9 @@ libevdev_kernel_set_abs_info(struct libevdev *dev, unsigned int code, const stru
 {
        int rc;
 
+       if (dev->fd < 0)
+               return -EBADF;
+
        if (code > ABS_MAX)
                return -EINVAL;
 
@@ -1147,6 +1150,9 @@ libevdev_grab(struct libevdev *dev, enum libevdev_grab_mode grab)
 {
        int rc = 0;
 
+       if (dev->fd < 0)
+               return -EBADF;
+
        if (grab != LIBEVDEV_GRAB && grab != LIBEVDEV_UNGRAB)
                return -EINVAL;
 
@@ -1250,6 +1256,9 @@ libevdev_kernel_set_led_values(struct libevdev *dev, ...)
        int rc = 0;
        size_t nleds = 0;
 
+       if (dev->fd < 0)
+               return -EBADF;
+
        memset(ev, 0, sizeof(ev));
 
        va_start(args, dev);