xserver/dix
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
..
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 13:24:49 +10:00
cursor.c dix: Fixes a memory leak when a cursor resource is released. 2009-11-06 14:27:02 +10:00
deprecated.c dix: remove dixLookupResource - we don't have any users left. 2009-09-07 10:51:16 +10:00
devices.c dix: try to ring the bell even if the current device doesn't have one. (#24503) 2010-02-25 11:49:59 +10:00
dispatch.c Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08:00
dispatch.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
dixfonts.c dix: Fix potential memory corruption in doListFontsWithInfo. 2009-10-02 16:19:41 +10:00
dixutils.c Fix most remaining deprecated resource lookups. 2009-04-29 01:04:37 -04: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-04-07 13:39:43 +10:00
events.c dix: Fix crash in DeliverGrabbedEvents. 2010-04-21 09:31:00 +10:00
extension.c dix: be more verbose when we run out of opcodes 2010-04-09 09:47:01 +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-11 12:38:06 +01: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-11 12:35:09 +01:00
Makefile.am dtrace: Add Xserver-dtrace.h to CLEANFILES 2009-12-24 07:54:41 -08:00
pixmap.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
privates.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05: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 Revert "Coverity Prevent: RESOURCE_LEAK in AccelSetProfileProperty:" 2009-07-17 06:34:00 +03:00
registry.c Correct outdated e-mail address in "Author" statements. 2009-09-02 17:56:52 -04:00
resource.c Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08: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 dix: restore lastDeviceEventTime update in dixSaveScreens 2010-02-16 11:30:46 +10:00
Xserver-dtrace.h.in Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08:00
Xserver.d Update Sun license notices to current X.Org standard form 2009-12-18 17:12:00 -08:00