Don't crash peeking at a zero-sized queue
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 26 Jun 2013 06:47:43 +0000 (16:47 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 27 Jun 2013 00:41:54 +0000 (10:41 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
libevdev/libevdev-int.h

index 5d3502a..1a4f224 100644 (file)
@@ -121,7 +121,7 @@ queue_pop(struct libevdev *dev, struct input_event *ev)
 static inline int
 queue_peek(struct libevdev *dev, size_t idx, struct input_event *ev)
 {
-       if (idx > dev->queue_next)
+       if (dev->queue_next == 0 || idx > dev->queue_next)
                return 1;
        *ev = dev->queue[idx];
        return 0;