diff --git a/dix/devices.c b/dix/devices.c index be236dd70..5f98afc42 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2766,9 +2766,10 @@ AllocDevicePair(ClientPtr client, const char *name, keyboard->type = (master) ? MASTER_KEYBOARD : SLAVE; /* The ClassesRec stores the device classes currently not used. */ - pointer->unused_classes = calloc(1, sizeof(ClassesRec)); - - keyboard->unused_classes = calloc(1, sizeof(ClassesRec)); + if (IsMaster(pointer)) { + pointer->unused_classes = calloc(1, sizeof(ClassesRec)); + keyboard->unused_classes = calloc(1, sizeof(ClassesRec)); + } *ptr = pointer;