dix: fix memory clearing in dix_main()

Clearing of screens and gpuscreens pointer list on teardown has been wrong.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult
2025-08-15 14:25:05 +02:00
parent 91bc0ff6b2
commit 5d8f149a57

View File

@@ -323,13 +323,13 @@ dix_main(int argc, char *argv[], char *envp[])
dixFreeScreen(screenInfo.gpuscreens[i]);
screenInfo.numGPUScreens = i;
}
memset(&screenInfo.numGPUScreens, 0, sizeof(screenInfo.numGPUScreens));
memset(&screenInfo.gpuscreens, 0, sizeof(screenInfo.gpuscreens));
for (int i = screenInfo.numScreens - 1; i >= 0; i--) {
dixFreeScreen(screenInfo.screens[i]);
screenInfo.numScreens = i;
}
memset(&screenInfo.screens, 0, sizeof(screenInfo.numGPUScreens));
memset(&screenInfo.screens, 0, sizeof(screenInfo.screens));
ReleaseClientIds(serverClient);
dixFreePrivates(serverClient->devPrivates, PRIVATE_CLIENT);