diff options
| author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-06-05 11:22:35 +1000 |
|---|---|---|
| committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-06-26 17:47:28 +1000 |
| commit | dc27c627a7ca7759b3cc917e2fa76dc83dcbc5bf (patch) | |
| tree | 95757cf1d1408b67cda7bafd3dc5f27a3849f142 /libevdev/libevdev.c | |
| parent | 645d5d3a645cf2c3ec1813b13dd5a3144ee8f912 (diff) | |
| download | libevdev-dc27c627a7ca7759b3cc917e2fa76dc83dcbc5bf.tar.gz | |
Fix type_to_mask to return -1
EV_SYN doesn't have a max, so 0 is not enough.
returning 0 on failure is a bad idea, as mask is unset.
Diffstat (limited to 'libevdev/libevdev.c')
| -rw-r--r-- | libevdev/libevdev.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c index 3d5bbf6..362e0ff 100644 --- a/libevdev/libevdev.c +++ b/libevdev/libevdev.c @@ -611,7 +611,7 @@ int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code) { const unsigned long *mask; - unsigned int max; + int max; if (!libevdev_has_event_type(dev, type)) return 0; @@ -621,7 +621,7 @@ libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned max = type_to_mask_const(dev, type, &mask); - if (code > max) + if (max == -1 || code > max) return 0; return bit_is_set(mask, code); @@ -840,7 +840,7 @@ libevdev_kernel_enable_event_code(struct libevdev *dev, unsigned int type, unsig return rc; max = type_to_mask_const(dev, type, &mask); - if (code > max) + if (max == -1 || code > max) return -EINVAL; switch(type) { |
