commit c4151be4237804f48ec11ea038877da7497d64a5 Author: Peter Hutterer Date: Thu Apr 24 13:29:46 2008 +0930 dix: NULL out WindowTable after freeing all the windows. CloseDownDevices() tries to send PresenceNotify events. If the windows are already freed, then we are accessing dangling pointers. diff --git a/dix/main.c b/dix/main.c index f7824ee..fad3fe5 100644 --- a/dix/main.c +++ b/dix/main.c @@ -464,7 +464,10 @@ main(int argc, char *argv[], char *envp[]) #endif config_fini(); + + memset(WindowTable, 0, MAXSCREENS * sizeof(WindowPtr)); CloseDownDevices(); + for (i = screenInfo.numScreens - 1; i >= 0; i--) { FreeScratchPixmapsForScreen(i);