Xext: panoramix: protect from allocation failures
Handle memory allocations gracefully, instead of just segfaulting. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
parent
b56b32bba7
commit
3f7370d53f
|
@ -806,7 +806,6 @@ extern void
|
||||||
PanoramiXConsolidate(void)
|
PanoramiXConsolidate(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
PanoramiXRes *root, *defmap, *saver;
|
|
||||||
ScreenPtr pScreen = screenInfo.screens[0];
|
ScreenPtr pScreen = screenInfo.screens[0];
|
||||||
DepthPtr pDepth = pScreen->allowedDepths;
|
DepthPtr pDepth = pScreen->allowedDepths;
|
||||||
VisualPtr pVisual = pScreen->visuals;
|
VisualPtr pVisual = pScreen->visuals;
|
||||||
|
@ -820,11 +819,23 @@ PanoramiXConsolidate(void)
|
||||||
for (i = 0; i < pScreen->numVisuals; i++)
|
for (i = 0; i < pScreen->numVisuals; i++)
|
||||||
PanoramiXMaybeAddVisual(pVisual++);
|
PanoramiXMaybeAddVisual(pVisual++);
|
||||||
|
|
||||||
root = malloc(sizeof(PanoramiXRes));
|
PanoramiXRes *root = calloc(1, sizeof(PanoramiXRes));
|
||||||
|
if (!root)
|
||||||
|
return;
|
||||||
|
|
||||||
root->type = XRT_WINDOW;
|
root->type = XRT_WINDOW;
|
||||||
defmap = malloc(sizeof(PanoramiXRes));
|
PanoramiXRes *defmap = calloc(1, sizeof(PanoramiXRes));
|
||||||
|
if (!defmap) {
|
||||||
|
free(root);
|
||||||
|
return;
|
||||||
|
}
|
||||||
defmap->type = XRT_COLORMAP;
|
defmap->type = XRT_COLORMAP;
|
||||||
saver = malloc(sizeof(PanoramiXRes));
|
PanoramiXRes *saver = calloc(1, sizeof(PanoramiXRes));
|
||||||
|
if (!saver) {
|
||||||
|
free(root);
|
||||||
|
free(defmap);
|
||||||
|
return;
|
||||||
|
}
|
||||||
saver->type = XRT_WINDOW;
|
saver->type = XRT_WINDOW;
|
||||||
|
|
||||||
FOR_NSCREENS_BACKWARD(i) {
|
FOR_NSCREENS_BACKWARD(i) {
|
||||||
|
|
Loading…
Reference in New Issue