diff --git a/libevdev/libevdev-int.h b/libevdev/libevdev-int.h index 2be555d..61c2454 100644 --- a/libevdev/libevdev-int.h +++ b/libevdev/libevdev-int.h @@ -99,7 +99,7 @@ struct libevdev { int rep_values[REP_CNT]; enum SyncState sync_state; - int grabbed; + enum libevdev_grab_mode grabbed; struct input_event *queue; size_t queue_size; /**< size of queue in elements */ diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c index 598455e..95d041c 100644 --- a/libevdev/libevdev.c +++ b/libevdev/libevdev.c @@ -936,7 +936,7 @@ libevdev_set_slot_value(struct libevdev *dev, unsigned int slot, unsigned int co if (!libevdev_has_event_type(dev, EV_ABS) || !libevdev_has_event_code(dev, EV_ABS, code)) return -1; - if (slot >= dev->num_slots || slot >= MAX_SLOTS) + if (dev->num_slots == -1 || slot >= (unsigned int)dev->num_slots || slot >= MAX_SLOTS) return -1; if (code > ABS_MT_MAX || code < ABS_MT_MIN)