From: Emil Velikov Date: Mon, 7 Aug 2017 16:23:19 +0000 (+0100) Subject: egl: don't NULL deref the .get_capabilities function pointer X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f0d053cb6dda908d554d84629bd98e05d383a8f6;p=mesa.git egl: don't NULL deref the .get_capabilities function pointer One could easily introduce version 3 of the DRI2fenceExtension, extending the struct, while not implementing the above function. Thus we'll end up with NULL pointer, and dereferencing it won't fare too well. Fixes: 0201f01dc4e ("egl: add EGL_ANDROID_native_fence_sync") Cc: Rob Clark Signed-off-by: Emil Velikov Reviewed-by: Tapani Pälli --- diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index aa6f02a34b5..83545bab227 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -677,7 +677,8 @@ dri2_setup_screen(_EGLDisplay *disp) disp->Extensions.KHR_wait_sync = EGL_TRUE; if (dri2_dpy->fence->get_fence_from_cl_event) disp->Extensions.KHR_cl_event2 = EGL_TRUE; - if (dri2_dpy->fence->base.version >= 2) { + if (dri2_dpy->fence->base.version >= 2 && + dri2_dpy->fence->get_capabilities) { unsigned capabilities = dri2_dpy->fence->get_capabilities(dri2_dpy->dri_screen); disp->Extensions.ANDROID_native_fence_sync =