Find a file
Joe Shaw 2fce4783f4 fix a sign problem with valuator data.
Without this patch, any negative valuator value is wrong when returned
from XQueryDeviceState().  This is a regression from at least xserver
1.4.

Valuator data is set in dix/getevents.c:set_valuators() by copying
signed int values into an unsigned int field
DeviceEvent.valuators.data.

That data is converted into a double with an implicit cast by
assignment to axisVal[i] in Xi/exevents.c:UpdateDeviceState().

That double is converted back to a signed int in
queryst.c:ProcXQueryDeviceState().  If the original value in
set_valuators() is negative, the double value will be > 2^31 and the
conversion back to a signed int is undefined.  (Although I
consistently see the value -2^31.)

Fix this by changing the definition of DeviceEvent.valuators.data from
uint32_t to int32_t.

Signed-off-by: Joe Shaw <joeshaw@litl.com>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit e354ccac36)
2010-11-11 12:38:06 +01:00
composite Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08:00
config config: don't shutdown the libhal ctx if it failed to initialize (#23213) 2009-08-14 11:01:20 +10:00
damageext input: define server-supported protocol versions in one single file. 2009-09-21 21:47:35 +10:00
dbe dbe: Fix indentation 2009-07-17 14:57:50 -04:00
dix fix a sign problem with valuator data. 2010-11-11 12:38:06 +01:00
doc Xserver(1) man page updates 2010-08-21 14:10:01 -07:00
exa exa: fix ExaCheckCopyNtoN for exa_classic when source = dest 2010-06-17 15:21:09 +01:00
fb fb: make isClipped always reject negative coordinates (bug 11503) 2010-08-21 20:41:37 +01:00
glx Unwrap/rewrap EnterVT/LeaveVT completely, Fixes 28998 2010-09-08 18:42:57 +02:00
hw Unwrap/rewrap EnterVT/LeaveVT completely, Fixes 28998 2010-09-08 18:42:57 +02:00
include fix a sign problem with valuator data. 2010-11-11 12:38:06 +01:00
m4 dolt: add Cygwin to supported platforms 2009-10-19 11:18:58 +10:00
mi rootless: Add some sanity checking to miPaintWindow 2010-05-02 20:05:29 -07:00
miext rootless: Remove an unneeded comment 2010-05-02 20:05:23 -07:00
os os: Return BadLength instead of disconnecting BigReq clients (#4565) 2010-09-30 16:23:13 -07:00
randr Don't double-swap the RandR PropertyNotify event 2010-02-16 11:30:46 +10:00
record Re-enable RECORD extension. 2010-02-23 10:51:13 +10:00
render render: Bounds check for nglyphs in ProcRenderAddGlyphs (#28801) 2010-08-21 20:41:16 +01:00
test dix: EventToCore needs to copy the root window too. 2010-04-07 13:39:43 +10:00
Xext xace: Invalid reference to out-of-scope data. 2010-08-21 20:08:10 +01:00
xfixes Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08:00
Xi Record: Avoid duplicates from replaying frozen events 2010-03-12 14:38:57 +10:00
xkb xkb: fix invalid memory writes in _XkbCopyGeom. 2010-07-05 15:53:27 +01:00
.gitignore Add (ok, fix) support for DTrace under OS X 2009-09-27 23:34:28 -07:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac xserver 1.7.7 2010-05-04 11:12:44 +10:00
COPYING Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08:00
cpprules.in Update xorg.conf man page & sample for changes in Xorg 1.7 2009-09-14 16:03:18 +10:00
Makefile.am Fix 'distcheck' to use host xkb files but install to build dir 2009-10-22 07:53:35 +10:00
shave-libtool.in shave: use CC tag variable on libtool 2009-09-13 16:43:42 +10:00
shave.in shave: hack around the configure ld check for make distcheck. 2009-09-04 16:41:47 +10:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-19 17:35:55 +13:00
xorg-server.pc.in Since font modules are dead, don't mention them in xorg-server.pc 2009-07-09 17:21:07 -04:00