From 38baac71bdbb8c7e882e3e39133615cfed894a6b Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Sun, 14 Oct 2007 04:21:42 +0930 Subject: [PATCH] dix: Set bidirectional pairing, don't allow pairing with already paired devs. --- dix/devices.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dix/devices.c b/dix/devices.c index 2dd3f9e5e..7be0d6941 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2238,7 +2238,10 @@ PairDevices(ClientPtr client, DeviceIntPtr ptr, DeviceIntPtr kbd) return BadDevice; /* Don't allow pairing for slave devices */ - if (ptr->master || kbd->master) + if (!ptr->isMaster || !kbd->isMaster) + return BadDevice; + + if (ptr->spriteInfo->paired) return BadDevice; if (!pairingClient) @@ -2255,6 +2258,7 @@ PairDevices(ClientPtr client, DeviceIntPtr ptr, DeviceIntPtr kbd) kbd->spriteInfo->sprite = ptr->spriteInfo->sprite; kbd->spriteInfo->paired = ptr; + ptr->spriteInfo->paired = kbd; return Success; }