[PATCH libevdev 05/13] Fix a few signed/unsigned int comparisons

Peter Hutterer peter.hutterer at who-t.net
Sun Aug 25 16:27:25 PDT 2013


Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 libevdev/libevdev.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index 4daaa58..8c9b58d 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -744,7 +744,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);
@@ -786,7 +786,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)
@@ -800,7 +800,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
-- 
1.8.2.1



More information about the Input-tools mailing list