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 5d3502aee8de9fb22c63925a2eabb5415b1a6a46..1a4f22426f5db2fbc78af81a056ffb8152072e1a 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;