egl/x11: handle when invalid drawable is passed in create_surface
authorEmil Velikov <emil.l.velikov@gmail.com>
Thu, 18 Jun 2015 19:39:28 +0000 (20:39 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Tue, 30 Jun 2015 16:35:25 +0000 (17:35 +0100)
0 is not used as a valid drawable id, as such there is no point in
attempting to query its geometry. Just bail out early and provide the
more meaningful EGL_BAD_NATIVE_WINDOW to the user.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/egl/drivers/dri2/platform_x11.c

index 0fbf4e40f2f5a033a4807ddc24ed59861c95b56c..ad40bd57aa64c4df2b8830c0be0605c505d39c83 100644 (file)
@@ -235,6 +235,10 @@ dri2_x11_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
                        dri2_surf->drawable, screen->root,
                        dri2_surf->base.Width, dri2_surf->base.Height);
    } else {
+      if (!drawable) {
+         _eglError(EGL_BAD_NATIVE_WINDOW, "dri2_create_surface");
+         goto cleanup_surf;
+      }
       dri2_surf->drawable = drawable;
    }