[Mesa-dev] [PATCH] egl: Fix crashes in eglCreate*Surface()
Emil Velikov
emil.l.velikov at gmail.com
Wed Dec 14 12:13:21 UTC 2016
On 13 December 2016 at 22:40, Chad Versace <chadversary at chromium.org> wrote:
> Don't dereference a null EGLDisplay.
>
> Fixes tests
> dEQP-EGL.functional.negative_api.create_pbuffer_surface
> dEQP-EGL.functional.negative_api.create_pixmap_surface
>
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=99038
> ---
> src/egl/main/eglapi.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
> index 33d562042f..a349992c46 100644
> --- a/src/egl/main/eglapi.c
> +++ b/src/egl/main/eglapi.c
> @@ -856,7 +856,7 @@ _eglCreateWindowSurfaceCommon(_EGLDisplay *disp, EGLConfig config,
> RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE);
>
> #ifdef HAVE_SURFACELESS_PLATFORM
> - if (disp->Platform == _EGL_PLATFORM_SURFACELESS) {
> + if (disp && disp->Platform == _EGL_PLATFORM_SURFACELESS) {
> /* From the EGL_MESA_platform_surfaceless spec (v1):
> *
> * eglCreatePlatformWindowSurface fails when called with a <display>
> @@ -977,7 +977,7 @@ _eglCreatePixmapSurfaceCommon(_EGLDisplay *disp, EGLConfig config,
> EGLSurface ret;
>
> #if HAVE_SURFACELESS_PLATFORM
> - if (disp->Platform == _EGL_PLATFORM_SURFACELESS) {
> + if (disp && disp->Platform == _EGL_PLATFORM_SURFACELESS) {
Afaict we want to return EGL_FALSE + EGL_BAD_DISPLAY, right ?
I'm split if we should do the check here or at the caller(s). IIRC the
spec does not state the order in which things are evaluated/errors are
generated so we should be safe with having the check in Common
function(s).
Thanks
Emil
More information about the mesa-dev
mailing list