xserver/dix
Joe Shaw 9ae9cbae5f 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-14 02:09:41 -08:00
..
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
atom.c Constify atom name strings 2009-02-03 10:06:00 -08:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
colormap.c dix: Fix up colormap fixup. 2009-10-23 09:46:30 +09:00
cursor.c dix/configure: remove null root cursor option 2010-01-27 21:28:57 -08:00
deprecated.c dix: remove dixLookupResource - we don't have any users left. 2009-09-07 10:51:16 +10:00
devices.c dix: the default axis mode is Relative, not "0". 2010-06-15 13:22:39 +10:00
dispatch.c Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
dispatch.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
dixfonts.c New header for XF86Bigfont server functions 2010-03-22 00:48:04 -05:00
dixutils.c Remove CopyISOLatin1Lowered 2009-10-15 08:08:23 -07:00
enterleave.c dix: call SetFocusOut and LeaveWindow when disabling a device. 2009-08-03 10:11:48 +10:00
enterleave.h dix: call SetFocusOut and LeaveWindow when disabling a device. 2009-08-03 10:11:48 +10:00
eventconvert.c dix: EventToCore needs to copy the root window too. 2010-01-27 14:38:16 -08:00
events.c Fix cursor ref counting mistakes with sprites and xf86Cursor.c 2010-05-18 14:41:46 +10:00
extension.c dix: be more verbose when we run out of opcodes 2010-04-09 11:48:36 +10:00
ffs.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
gc.c Replace dixLookupResource by dixLookupResourceBy{Type,Class} 2009-03-09 13:08:09 -07:00
getevents.c fix a sign problem with valuator data. 2010-11-14 02:09:41 -08:00
globals.c DPMS: Remove the defaultDPMS* variables 2009-04-03 18:22:20 -04:00
glyphcurs.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
grabs.c input: remove XI2 keysym grabs, use keycode grabs instead. 2009-07-22 12:12:51 +10:00
initatoms.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
inpututils.c Un-export ApplyPointerMapping. This is an in-server function. 2009-09-03 08:39:26 +10:00
main.c dix: Default DPMS timeout values to match screensaver values 2010-11-14 02:09:34 -08:00
Makefile.am dtrace: Add Xserver-dtrace.h to CLEANFILES 2009-12-15 16:51:48 -08:00
pixmap.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
privates.c dix: Fix a double free in dixFreePrivates. 2009-10-07 16:22:46 -07:00
property.c dix: don't return BadMatch from GetProperty (#23562) 2009-09-03 14:19:35 +10:00
protocol.txt Add DRI2 requests to protocol.txt 2009-08-28 23:29:05 -04:00
ptrveloc.c dix: add smooth limited pointer acceleration profile 2010-01-01 11:22:42 -08:00
registry.c Cygwin/X: Tidy up some cosmetic issues in log strings 2010-03-16 13:55:20 +00:00
resource.c dix: Update element count in FreeResource*() 2010-06-02 10:43:03 +10:00
selection.c xserver: Avoid sending uninitialized padding data over the network 2009-02-16 13:28:38 +10:00
swaprep.c dix: switch to byte-counting functions. 2009-07-14 10:05:54 +10:00
swapreq.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
tables.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
window.c Add a ConfigNotify hook. 2010-03-16 09:51:08 -04:00
Xserver-dtrace.h.in Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
Xserver.d Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00