summaryrefslogtreecommitdiff
path: root/src/XIPassiveGrab.c
AgeCommit message (Collapse)Author
2014-07-14Fix locking bugs with XIAllowTouchEvents() and XIUngrabTouchBegin()Owen W. Taylor
Fix two places where the display was double locked when an API function chained to an implementation that also locks the display. Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-07-10XIPassiveGrab: Fix completely broken locking in XIGrabTouchBeginJasper St. Pierre
_XIPassiveGrabDevice calls LockDisplay as the first thing it does. That means that it expects the display to be unlocked. XIGrabTouchBegin locks the display to check for the XI extension, and then never unlocks it. Effectively, this meant that anybody that called XIGrabTouchBegin after XInitThreads just got a deadlock. Cool. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-07-10XIPassiveGrab: Fix display locking inside _XIPassiveGrabDevice for error pathsJasper St. Pierre
The code here before would just leave the display locked on error, which is all sorts of broken. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27Include limits.h to prevent build error: missing INT_MAXPeter Hutterer
Introduced in 4c8e9bcab459ea5f870d3e56eff15f931807f9b7. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27Fix potential corruption in mask_len handlingPeter Hutterer
First: check for allocation failure on the mask. XI2 requires that the mask is zeroed, so we can't just Data() the mask provided by the client (it will pad) - we need a tmp buffer. Make sure that doesn't fail. Second: req->mask_len is a uint16_t, so check against malicious mask_lens that would cause us to corrupt memory on copy, as the code always allocates req->mask_len * 4, but copies mask->mask_len bytes. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-23memory corruption in _XIPassiveGrabDevice() [CVE-2013-1998 2/3]Alan Coopersmith
If the server returned more modifiers than the caller asked for, we'd just keep copying past the end of the array provided by the caller, writing over who-knows-what happened to be there. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-12-21Implement support for XI 2.2Peter Hutterer
Adds support for the new TouchClass for multitouch-capable servers/devices. New events: XITouchOwnershipEvent New event types handled: XITouchBegin, XITouchUpdate, XITouchEnd XIRawTouchBegin, XIRawTouchUpdate, XIRawTouchEnd New functions: XIGrabTouchBegin ... passive grabs on touches XIUngrabTouchBegin XIAllowTouchEvents ... Allow/reject touch event sequences New XIQueryDevice classes: XITouchClassInfo Requires libX11 1.5 for GetReqSized Co-authored by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-12Include config.h from source filesPeter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Gaetan Nadon <memsize@videotron.ca> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-06-03Use Data, not Data32 in XIPassiveGrabDevicePeter Hutterer
Data32 takes and iterates over an array of longs, thus skipping every 4 bytes on LP64. Here we only have arrays of ints, use the normal Data macro instead. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-03-08Don't discard extra data for passive grabs.Peter Hutterer
Failed modifier data was discarded, causing assertions inside xcb. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-03-03Require XI 2 for all XI 2 calls.Peter Hutterer
Each XI2 call should check _XiCheckExtInit for XI version 2.0 or higher. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2011-01-11Fix passive grabs.Philipp Reh
_XIPassiveGrabDevice, which is called by alle the passive grab functions, wrongly returns an error when it shouldn't. The attached patch adds the missing "not" to properly test the error condition of _XReply. Signed-off-by: Philipp Reh <sefi@s-e-f-i.de> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-07-22Replace keysym grabs with keycode grabs.Peter Hutterer
Keysym grabs are tricky to get right for applications that are more complicated than demo applications. otoh, we know keycode grabs are working. So let's go with keycode grabs for now and add keysym grabs later when we've sorted out the details. Requires inputproto 1.9.99.15 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-28Add support for Enter/FocusIn passive grabs.Peter Hutterer
2009-05-27Fix wrong pointer argument in _XIPassiveUngrabDevice.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-19XIPassiveGrab: take the address of modifiers for memcpy, not the value.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-14Return failed modifiers for passive XI2 grabs.Peter Hutterer
2009-05-12Adust to new device names (less "Device" in function names)Peter Hutterer
2009-05-07Use the new prefixed constants for XI2 and require inputproto 1.99.9.8Peter Hutterer
2009-05-07Add XIPassiveGrabDevice.Peter Hutterer