Fix IsXtstDevice - returns false positives since 0814f511d5.

Missing check for the value of 'mid' returned false positives if master was
NULL.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2009-07-03 09:18:57 +10:00
parent 3525d14056
commit 50a2a8dc76

View File

@ -2625,16 +2625,23 @@ int AllocXtstDevice (ClientPtr client, char* name,
BOOL
IsXtstDevice(DeviceIntPtr dev, DeviceIntPtr master)
{
int is_xtst = FALSE;
int mid;
void *tmp; /* shut up, gcc! */
if (IsMaster(dev))
return FALSE;
return is_xtst;
tmp = dixLookupPrivate(&dev->devPrivates, XTstDevicePrivateKey);
mid = (int)tmp;
return (!master || mid == master->id);
/* deviceid 0 is reserved for XIAllDevices, non-zero mid means xtst
* device */
if ((!master && mid) ||
(master && mid == master->id))
is_xtst = TRUE;
return is_xtst;
}
/**