diff --git a/dix/dispatch.c b/dix/dispatch.c index f7dc019026..09ae12fffb 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -3776,6 +3776,7 @@ NextAvailableClient(void *ospriv) return (ClientPtr) NULL; InitClient(client, i, ospriv); if (!InitClientResources(client)) { + clients[i] = NULL; dixFreeObjectWithPrivates(client, PRIVATE_CLIENT); return (ClientPtr) NULL; } @@ -3783,6 +3784,7 @@ NextAvailableClient(void *ospriv) data.length = bytes_to_int32(sz_xReq + sz_xConnClientPrefix); if (!InsertFakeRequest(client, (char *) &data, sz_xReq)) { FreeClientResources(client); + clients[i] = NULL; dixFreeObjectWithPrivates(client, PRIVATE_CLIENT); return (ClientPtr) NULL; }