summaryrefslogtreecommitdiff
path: root/libevdev/libevdev.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-06-03 16:36:10 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-06-03 16:36:10 +1000
commitb01c94a762e934f6306288c008a75e392e1601cd (patch)
tree065d65d9b034ae414cc1a79898987de306c8a5e7 /libevdev/libevdev.c
parent1927b2024f243b16262d0f3e894e2d7725cbe98c (diff)
downloadlibevdev-b01c94a762e934f6306288c008a75e392e1601cd.tar.gz
Fix invalid abs_info read
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'libevdev/libevdev.c')
-rw-r--r--libevdev/libevdev.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index b72db4b..8a466b5 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -288,10 +288,11 @@ libevdev_set_fd(struct libevdev* dev, int fd)
for (i = ABS_X; i <= ABS_MAX; i++) {
if (bit_is_set(dev->abs_bits, i)) {
struct input_absinfo abs_info;
- rc = ioctl(fd, EVIOCGABS(i), &dev->abs_info[i]);
+ rc = ioctl(fd, EVIOCGABS(i), &abs_info);
if (rc < 0)
goto out;
+ dev->abs_info[i] = abs_info;
if (i == ABS_MT_SLOT) {
dev->num_slots = abs_info.maximum + 1; /* FIXME: non-zero min? */
dev->current_slot = abs_info.value;