summaryrefslogtreecommitdiff
path: root/glamor
diff options
context:
space:
mode:
authorOlivier Fourdan <ofourdan@redhat.com>2019-03-08 18:19:16 +0100
committerKarol Herbst <kherbst@redhat.com>2019-05-20 12:11:11 +0200
commit5bc29a67b8ab251048e0737eedcceb29bba25f5f (patch)
tree1d96e2de33421cb9d622ac5a022056e316410428 /glamor
parentd0c7483b3edadf3ff9c12b4b024abd7b11b34ef1 (diff)
glamor: pixmap FBO may not be allocated
If `_glamor_create_tex()` fails to allocate the FBO because of GL_OUT_OF_MEMORY error, the `pixmap_priv->fbo` is NULL. However, `glamor_get_pixmap_texture()` doesn't actually check whether the `pixmap_priv->fbo` is NULL and will segfault with a NULL pointer dereference trying to access the `pixmap_priv->fbo->tex`. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/647 (Cherry picked from commit 74479a99ecf18fdfdafd033b5efd8d785dd12c28)
Diffstat (limited to 'glamor')
-rw-r--r--glamor/glamor.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/glamor/glamor.c b/glamor/glamor.c
index 9bf1707de..b1c7d9f13 100644
--- a/glamor/glamor.c
+++ b/glamor/glamor.c
@@ -136,6 +136,9 @@ glamor_get_pixmap_texture(PixmapPtr pixmap)
if (!pixmap_priv)
return 0;
+ if (!pixmap_priv->fbo)
+ return 0;
+
if (pixmap_priv->type != GLAMOR_TEXTURE_ONLY)
return 0;