dix: don't allow slave devices as ClientPointer

This commit is contained in:
Peter Hutterer 2007-10-14 07:57:24 +09:30
parent 9ccc9ab6f2
commit 0c5f65ecd3

View File

@ -6103,6 +6103,16 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
_X_EXPORT Bool
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;
return TRUE;
}