XChangeFeedbackControl will SEGV if the last parameter is NULL.
Signed-off-by: Peter Harris <[email protected]>
---
xts5/XI/ChangeFeedbackControl.m | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/xts5/XI/ChangeFeedbackControl.m b/xts5/XI/ChangeFeedbackControl.m
index e240e67..8b6ec3c 100644
--- a/xts5/XI/ChangeFeedbackControl.m
+++ b/xts5/XI/ChangeFeedbackControl.m
@@ -572,6 +572,16 @@ Do a ChangeFeedbackControl, specifying a device that has
no feedbacks.
if (Setup_Extension_DeviceInfo(NFeedMask))
{
+ XBellFeedbackControl belf;
+ belf.class = BellFeedbackClass;
+ belf.length = sizeof (XBellFeedbackControl);
+ belf.pitch = 0;
+ belf.id = 0;
+ belf.percent = -2;
+ belf.pitch = 0;
+ belf.duration = 100;
+ f = (XFeedbackControl *) &belf;
+
device = Devs.NoFeedback;
XCALL;
if (geterr() == BadMatch)
@@ -592,6 +602,7 @@ Do a ChangeFeedbackControl, specifying an invalid device.
XDevice bogus;
int baddevice;
int ximajor, first, err;
+XBellFeedbackControl belf;
if (!XQueryExtension (display, INAME, &ximajor, &first, &err)) {
untested("%s: Input extension not supported.\n", TestName);
@@ -601,6 +612,16 @@ int ximajor, first, err;
BadDevice (display, baddevice);
bogus.device_id = -1;
device = &bogus;
+
+ belf.class = BellFeedbackClass;
+ belf.length = sizeof (XBellFeedbackControl);
+ belf.pitch = 0;
+ belf.id = 0;
+ belf.percent = -2;
+ belf.pitch = 0;
+ belf.duration = 100;
+ f = (XFeedbackControl *) &belf;
+
XCALL;
if (geterr() == baddevice)
CHECK;
--
1.7.10.4
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel