On 12/08/2014 01:45 PM, Ian Romanick wrote: > On 12/02/2014 12:10 AM, Valentin Corfu wrote: >> With this check we can avoid segmentation fault when invalid value used >> during eglCreateContext. >> >> Cc: mesa-sta...@lists.freedesktop.org >> Cc: mesa-dev@lists.freedesktop.org >> Signed-off-by: Valentin Corfu <valentinx.co...@intel.com> >> --- >> src/egl/drivers/dri2/egl_dri2.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/src/egl/drivers/dri2/egl_dri2.c >> b/src/egl/drivers/dri2/egl_dri2.c >> index d795a2f..819cb77 100644 >> --- a/src/egl/drivers/dri2/egl_dri2.c >> +++ b/src/egl/drivers/dri2/egl_dri2.c >> @@ -808,6 +808,11 @@ dri2_create_context(_EGLDriver *drv, _EGLDisplay *disp, >> _EGLConfig *conf, >> >> (void) drv; >> >> + if (conf == NULL) { >> + _eglError(EGL_BAD_CONFIG, "dri2_create_context"); >> + return NULL; >> + } >> + > > Can't conf be NULL when used with MESA_configless_context? See also the > conf != NULL check at line 853. > > Also, parameter validation etc. should go in eglCreateContext.
NAK. I don't know Valentin is hitting a segfault. But (conf == NULL) is legal here. If Valentin has a backtrace, then maybe that would help us determine a correct fix. This same function, farther below, contains this code: src/egl/drivers/dri2/egl_dri2.c:dri2_create_context(): if (conf != NULL) { ... } else { dri_config = NULL; } And as Ian points out, the config is allowed to be null if EGL_MESA_configless_context is supported. Here's proof: EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint *attrib_list) { ... if (!config && !disp->Extensions.MESA_configless_context) RETURN_EGL_ERROR(disp, EGL_BAD_CONFIG, EGL_NO_CONTEXT); ... }
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev