Commit b0ce1d08 authored by Olivier Fourdan's avatar Olivier Fourdan Committed by Adam Jackson

Xephyr: Check screen resources creation success

If the screen pixmap or the corresponding texture creation with glamor
fails, exit cleanly with an error message instead of segfaulting.

Fixes: https://bugzilla.redhat.com/1431633Reviewed-by: Michel Dänzer's avatarMichel Dänzer <michel.daenzer@amd.com>
Signed-off-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
parent f40ff18c
......@@ -725,8 +725,10 @@ ephyrCreateResources(ScreenPtr pScreen)
ephyrShadowUpdate, ephyrWindowLinear);
else {
#ifdef GLAMOR
if (ephyr_glamor)
ephyr_glamor_create_screen_resources(pScreen);
if (ephyr_glamor) {
if (!ephyr_glamor_create_screen_resources(pScreen))
return FALSE;
}
#endif
return ephyrSetInternalDamage(pScreen);
}
......
......@@ -1559,6 +1559,8 @@ ephyr_glamor_create_screen_resources(ScreenPtr pScreen)
pScreen->height,
pScreen->rootDepth,
GLAMOR_CREATE_NO_LARGE);
if (!screen_pixmap)
return FALSE;
pScreen->SetScreenPixmap(screen_pixmap);
if (pScreen->root && pScreen->SetWindowPixmap)
......@@ -1566,6 +1568,9 @@ ephyr_glamor_create_screen_resources(ScreenPtr pScreen)
/* Tell the GLX code what to GL texture to read from. */
tex = glamor_get_pixmap_texture(screen_pixmap);
if (!tex)
return FALSE;
ephyr_glamor_set_texture(scrpriv->glamor, tex);
return TRUE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment