From 0c5f65ecd3ad11fbdb1cab3cb1d0eb4f33bb4e35 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Sun, 14 Oct 2007 07:57:24 +0930 Subject: [PATCH] dix: don't allow slave devices as ClientPointer --- dix/events.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dix/events.c b/dix/events.c index 8141a4051..b84d18dee 100644 --- a/dix/events.c +++ b/dix/events.c @@ -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; }