diff options
author | Olivier Fourdan <ofourdan@redhat.com> | 2019-03-08 18:19:16 +0100 |
---|---|---|
committer | Karol Herbst <kherbst@redhat.com> | 2019-05-20 12:11:11 +0200 |
commit | 5bc29a67b8ab251048e0737eedcceb29bba25f5f (patch) | |
tree | 1d96e2de33421cb9d622ac5a022056e316410428 /glamor | |
parent | d0c7483b3edadf3ff9c12b4b024abd7b11b34ef1 (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.c | 3 |
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; |