Fix a few signed/unsigned int comparisons
authorPeter Hutterer <peter.hutterer@who-t.net>
Fri, 23 Aug 2013 00:28:57 +0000 (10:28 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 29 Aug 2013 01:36:20 +0000 (11:36 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
libevdev/libevdev.c

index e4bbd4f525943496d7f91688a6f71a3eb7627999..5356e5847cfafb01592bfaca3406b0b6250a823b 100644 (file)
@@ -853,7 +853,7 @@ libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned
 
        max = type_to_mask_const(dev, type, &mask);
 
-       if (max == -1 || code > max)
+       if (max == -1 || code > (unsigned int)max)
                return 0;
 
        return bit_is_set(mask, code);
@@ -922,7 +922,7 @@ libevdev_get_slot_value(const struct libevdev *dev, unsigned int slot, unsigned
        if (!libevdev_has_event_type(dev, EV_ABS) || !libevdev_has_event_code(dev, EV_ABS, code))
                return 0;
 
-       if (slot >= dev->num_slots || slot >= MAX_SLOTS)
+       if (dev->num_slots < 0 || slot >= (unsigned int)dev->num_slots || slot >= MAX_SLOTS)
                return 0;
 
        if (code > ABS_MT_MAX || code < ABS_MT_MIN)
@@ -960,7 +960,8 @@ libevdev_fetch_slot_value(const struct libevdev *dev, unsigned int slot, unsigne
 {
        if (libevdev_has_event_type(dev, EV_ABS) &&
            libevdev_has_event_code(dev, EV_ABS, code) &&
-           slot < dev->num_slots && slot < MAX_SLOTS) {
+           dev->num_slots >= 0 &&
+           slot < (unsigned int)dev->num_slots && slot < MAX_SLOTS) {
                *value = libevdev_get_slot_value(dev, slot, code);
                return 1;
        } else