udev: don't allow pointing stick sensitivities greater than 255 (#5927)
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 10 May 2017 19:22:00 +0000 (05:22 +1000)
committerLennart Poettering <lennart@poettering.net>
Wed, 10 May 2017 19:22:00 +0000 (21:22 +0200)
It gets truncated, so the result is that people mess with the const accel
because the sensitivity isn't the expected 300 but the too-low 45.

One example: https://bugs.freedesktop.org/show_bug.cgi?id=100965

src/udev/udev-builtin-keyboard.c

index 07a2f94..55f44da 100644 (file)
@@ -173,6 +173,9 @@ static void set_trackpoint_sensitivity(struct udev_device *dev, const char *valu
         if (r < 0) {
                 log_error("Unable to parse POINTINGSTICK_SENSITIVITY '%s' for '%s'", value, udev_device_get_devnode(dev));
                 return;
+        } else if (val_i < 0 || val_i > 255) {
+                log_error("POINTINGSTICK_SENSITIVITY %d outside range [0..255] for '%s' ", val_i, udev_device_get_devnode(dev));
+                return;
         }
 
         xsprintf(val_s, "%d", val_i);