mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-06-10 09:08:19 +02:00
Xext: only update the sprite on pointer events.
A call to miPointerUpdateSprite for the XTEST keyboard may result in a
NULL pointer dereference in miDCPutUpCursor() when the save buffer is NULL.
XTS test case: Xlib 11 KeymapNotify
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit af170a4ab7)
This commit is contained in:
parent
5958ded6f8
commit
adcff144cf
1 changed files with 5 additions and 1 deletions
|
|
@ -184,6 +184,7 @@ ProcXTestFakeInput(ClientPtr client)
|
|||
int i;
|
||||
int base = 0;
|
||||
int flags = 0;
|
||||
int need_ptr_update = 1;
|
||||
|
||||
nev = (stuff->length << 2) - sizeof(xReq);
|
||||
if ((nev % sizeof(xEvent)) || !nev)
|
||||
|
|
@ -387,6 +388,8 @@ ProcXTestFakeInput(ClientPtr client)
|
|||
client->errorValue = ev->u.u.detail;
|
||||
return BadValue;
|
||||
}
|
||||
|
||||
need_ptr_update = 0;
|
||||
break;
|
||||
case MotionNotify:
|
||||
if (!dev->valuator)
|
||||
|
|
@ -451,7 +454,8 @@ ProcXTestFakeInput(ClientPtr client)
|
|||
for (i = 0; i < nevents; i++)
|
||||
mieqProcessDeviceEvent(dev, (InternalEvent*)(xtest_evlist+i)->event, NULL);
|
||||
|
||||
miPointerUpdateSprite(dev);
|
||||
if (need_ptr_update)
|
||||
miPointerUpdateSprite(dev);
|
||||
return client->noClientException;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue