dix: don't allow slave devices as ClientPointer
This commit is contained in:
parent
9ccc9ab6f2
commit
0c5f65ecd3
10
dix/events.c
10
dix/events.c
|
@ -6103,6 +6103,16 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
|
||||||
_X_EXPORT Bool
|
_X_EXPORT Bool
|
||||||
SetClientPointer(ClientPtr client, ClientPtr setter, DeviceIntPtr device)
|
SetClientPointer(ClientPtr client, ClientPtr setter, DeviceIntPtr device)
|
||||||
{
|
{
|
||||||
|
if (!device->isMaster)
|
||||||
|
{
|
||||||
|
ErrorF("[dix] Need master device for ClientPointer. This is a bug.\n");
|
||||||
|
return FALSE;
|
||||||
|
} else if (!device->spriteInfo->spriteOwner)
|
||||||
|
{
|
||||||
|
ErrorF("[dix] Device %d does not have a sprite. "
|
||||||
|
"Cannot be ClientPointer\n", device->id);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
client->clientPtr = device;
|
client->clientPtr = device;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue