libinput/test
Olivier Fourdan f420c54a99 Fix an abort if the device speed is NaN
When using libinput with xf86-input-libinput, the device speed is
represented as a float passed via X properties.

If a buggy client gives a broken value, the conversions that occur
can cause the value of speed to be NaN (not a number), aka infinity.

In C, any comparison with NaN always gives false, whatever the value.

So that test in libinput_device_config_accel_set_speed():

   (speed < 1.0 || speed > 1.0)

will necessarily return FALSE, defeating the test of range.

However, since since any comparison with NaN is false, the
opposite assert() in accelerator_set_speed():

   (speed >= 1.0 && speed <= 1.0)

will be false as well, thus triggering the abort() and the crash of
the entire X server along with it.

The solution is to use the same construct in both routines, so that
it fails gracefully in libinput_device_config_accel_set_speed().

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-02-06 10:26:04 +10:00
..
50-litest.conf test: Prefix litest created device names with litest 2014-06-25 11:11:45 +10:00
build-cxx.cc test: Add include from C++ build test 2014-03-29 00:51:44 +01:00
build-pedantic.c build-pedantic: use main(void) 2015-01-12 07:54:12 +10:00
device.c test: fix two compiler warnings 2014-12-11 17:34:05 +10:00
keyboard.c evdev: Release still pressed keys/buttons when removing device 2014-08-18 22:41:16 +02:00
litest-alps-semi-mt.c test: move semi-mt special tracking into the shared litest.c 2015-01-16 07:42:50 +10:00
litest-bcm5974.c test: auto-update for BTN_TOOL_* when using litest_touch_ functions 2014-07-23 15:08:15 +10:00
litest-generic-singletouch.c test: add a generic single-touch device 2014-08-26 13:49:16 +10:00
litest-int.h test: add per-device udev rule support 2015-02-03 10:34:26 +10:00
litest-keyboard.c style fix: Remove duplicate empty lines 2014-07-22 09:00:45 +10:00
litest-mouse.c test: drop empty test device interfaces 2015-01-06 09:53:25 +10:00
litest-ms-surface-cover.c test: rename LITEST_POINTER to LITEST_RELATIVE 2014-11-11 09:55:42 +10:00
litest-qemu-usb-tablet.c test: add QEMU tablet as test device 2014-11-11 09:55:42 +10:00
litest-synaptics-hover.c test: add a semi-mt + hover synaptics touchpad 2015-01-16 07:42:50 +10:00
litest-synaptics-st.c test: auto-update for BTN_TOOL_* when using litest_touch_ functions 2014-07-23 15:08:15 +10:00
litest-synaptics-t440.c test: auto-update for BTN_TOOL_* when using litest_touch_ functions 2014-07-23 15:08:15 +10:00
litest-synaptics-x1-carbon-3rd.c test: add per-device udev rule support 2015-02-03 10:34:26 +10:00
litest-synaptics.c test: auto-update for BTN_TOOL_* when using litest_touch_ functions 2014-07-23 15:08:15 +10:00
litest-trackpoint.c test: drop empty test device interfaces 2015-01-06 09:53:25 +10:00
litest-vmware-virtual-usb-mouse.c test: add VMWare Virtual USB Mouse device 2014-11-11 09:55:42 +10:00
litest-wacom-touch.c test: drop unused includes for libinput-util.h 2014-06-11 09:43:52 +10:00
litest-xen-virtual-pointer.c test: add Xen Virtual Pointer device 2014-11-11 09:55:42 +10:00
litest.c test: add per-device udev rule support 2015-02-03 10:34:26 +10:00
litest.h test: add per-device udev rule support 2015-02-03 10:34:26 +10:00
log.c path: store the udev device instead of just the devnode 2014-11-25 16:33:01 +10:00
Makefile.am test: add a test device for the Lenovo X1 Carbon 3rd 2015-01-29 14:40:26 +10:00
misc.c test: switch event conversion tests to use litest devices 2015-02-04 08:14:08 +10:00
path.c Add libinput_set_user_data 2014-12-23 14:49:39 +10:00
pointer.c Fix an abort if the device speed is NaN 2015-02-06 10:26:04 +10:00
touch.c Rename functions for left handed device configurations 2015-01-15 10:17:57 +10:00
touchpad.c test: add tests for new lenovo touchpads 2015-01-29 14:44:35 +10:00
trackpoint.c Add pointer axis sources to the API 2014-12-24 10:47:00 +10:00
udev.c Add libinput_set_user_data 2014-12-23 14:49:39 +10:00
valgrind.suppressions test: automatically run the tests against valgrind for leaks 2014-04-10 11:11:56 +10:00