Xext: avoid null-pointer dereference in XTestFakeInput (#59937)
dv is still NULL at this point, so return firstValuator instead (which is the same value dv->firstValuator would be once initialized) X.Org Bug 59937 <http://bugs.freedesktop.org/show_bug.cgi?id=59937> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
1058fcf57f
commit
48bc30c541
|
@ -156,7 +156,6 @@ ProcXTestFakeInput(ClientPtr client)
|
||||||
DeviceIntPtr dev = NULL;
|
DeviceIntPtr dev = NULL;
|
||||||
WindowPtr root;
|
WindowPtr root;
|
||||||
Bool extension = FALSE;
|
Bool extension = FALSE;
|
||||||
deviceValuator *dv = NULL;
|
|
||||||
ValuatorMask mask;
|
ValuatorMask mask;
|
||||||
int valuators[MAX_VALUATORS] = { 0 };
|
int valuators[MAX_VALUATORS] = { 0 };
|
||||||
int numValuators = 0;
|
int numValuators = 0;
|
||||||
|
@ -241,14 +240,14 @@ ProcXTestFakeInput(ClientPtr client)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nev > 1 && !dev->valuator) {
|
if (nev > 1 && !dev->valuator) {
|
||||||
client->errorValue = dv->first_valuator;
|
client->errorValue = firstValuator;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check validity of valuator events */
|
/* check validity of valuator events */
|
||||||
base = firstValuator;
|
base = firstValuator;
|
||||||
for (n = 1; n < nev; n++) {
|
for (n = 1; n < nev; n++) {
|
||||||
dv = (deviceValuator *) (ev + n);
|
deviceValuator *dv = (deviceValuator *) (ev + n);
|
||||||
if (dv->type != DeviceValuator) {
|
if (dv->type != DeviceValuator) {
|
||||||
client->errorValue = dv->type;
|
client->errorValue = dv->type;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
|
|
Loading…
Reference in New Issue