exa: protect against NULL pointer dereference
Since GetPictureScreenIfSet() explicitly can return NULL, better be prepared for that to happen (instead of hard crash) Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
parent
6308fb6bf6
commit
10e9f99fb2
|
@ -740,7 +740,7 @@ exaCloseScreen(ScreenPtr pScreen)
|
||||||
ExaScreenPriv(pScreen);
|
ExaScreenPriv(pScreen);
|
||||||
PictureScreenPtr ps = GetPictureScreenIfSet(pScreen);
|
PictureScreenPtr ps = GetPictureScreenIfSet(pScreen);
|
||||||
|
|
||||||
if (ps->Glyphs == exaGlyphs)
|
if (ps && ps->Glyphs == exaGlyphs)
|
||||||
exaGlyphsFini(pScreen);
|
exaGlyphsFini(pScreen);
|
||||||
|
|
||||||
if (pScreen->BlockHandler == ExaBlockHandler)
|
if (pScreen->BlockHandler == ExaBlockHandler)
|
||||||
|
@ -765,12 +765,15 @@ exaCloseScreen(ScreenPtr pScreen)
|
||||||
unwrap(pExaScr, pScreen, SharePixmapBacking);
|
unwrap(pExaScr, pScreen, SharePixmapBacking);
|
||||||
if (pExaScr->SavedSetSharedPixmapBacking)
|
if (pExaScr->SavedSetSharedPixmapBacking)
|
||||||
unwrap(pExaScr, pScreen, SetSharedPixmapBacking);
|
unwrap(pExaScr, pScreen, SetSharedPixmapBacking);
|
||||||
|
|
||||||
|
if (ps) {
|
||||||
unwrap(pExaScr, ps, Composite);
|
unwrap(pExaScr, ps, Composite);
|
||||||
if (pExaScr->SavedGlyphs)
|
if (pExaScr->SavedGlyphs)
|
||||||
unwrap(pExaScr, ps, Glyphs);
|
unwrap(pExaScr, ps, Glyphs);
|
||||||
unwrap(pExaScr, ps, Trapezoids);
|
unwrap(pExaScr, ps, Trapezoids);
|
||||||
unwrap(pExaScr, ps, Triangles);
|
unwrap(pExaScr, ps, Triangles);
|
||||||
unwrap(pExaScr, ps, AddTraps);
|
unwrap(pExaScr, ps, AddTraps);
|
||||||
|
}
|
||||||
|
|
||||||
free(pExaScr);
|
free(pExaScr);
|
||||||
|
|
||||||
|
@ -1019,7 +1022,7 @@ exaDriverInit(ScreenPtr pScreen, ExaDriverPtr pScreenInfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ps->Glyphs == exaGlyphs)
|
if (ps && ps->Glyphs == exaGlyphs)
|
||||||
exaGlyphsInit(pScreen);
|
exaGlyphsInit(pScreen);
|
||||||
|
|
||||||
LogMessage(X_INFO, "EXA(%d): Driver registered support for the following"
|
LogMessage(X_INFO, "EXA(%d): Driver registered support for the following"
|
||||||
|
|
Loading…
Reference in New Issue