dix: free default colormap before screen deletion
If we don't free this here, it gets freed later in the resource cleanups, however it then looks up up pmap->pScreen, which we freed already in this function. So free the default colormap when we should. This fixes a bug after a couple of hotplug cycles when you try to exit the X server and it crashes. Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
20f601a0fb
commit
49ec57d509
|
@ -3904,6 +3904,10 @@ RemoveGPUScreen(ScreenPtr pScreen)
|
||||||
}
|
}
|
||||||
screenInfo.numGPUScreens--;
|
screenInfo.numGPUScreens--;
|
||||||
|
|
||||||
|
/* this gets freed later in the resource list, but without
|
||||||
|
* the screen existing it causes crashes - so remove it here */
|
||||||
|
if (pScreen->defColormap)
|
||||||
|
FreeResource(pScreen->defColormap, RT_COLORMAP);
|
||||||
free(pScreen);
|
free(pScreen);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue