egl: propagate EGL_BAD_ATTRIBUTE during EGLImage attr parsing
authorEmil Velikov <emil.velikov@collabora.com>
Thu, 13 Jul 2017 19:04:33 +0000 (20:04 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 19 Jul 2017 12:06:50 +0000 (13:06 +0100)
Earlier commit refactored/split the parsing into separate hunks.
While no functional change was intended, it did not attribute that
different error is set when the attrib. value is incorrect.

Fixes: 3ee2be4113d ("egl: split _eglParseImageAttribList into per
extension functions")
Cc: Michel Dänzer <michel@daenzer.net>
Reported-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
src/egl/main/eglimage.c

index a96075fe558daaede54325b32f435e5b9bfc60a2..72a556e8dbdfec44906656d7052a1861571d0f1d 100644 (file)
@@ -302,6 +302,13 @@ _eglParseImageAttribList(_EGLImageAttribs *attrs, _EGLDisplay *dpy,
       if (err == EGL_SUCCESS)
           continue;
 
+      /* EXT_image_dma_buf_import states that if invalid value is provided for
+       * its attributes, we should return EGL_BAD_ATTRIBUTE.
+       * Bail out ASAP, since follow-up calls can return another EGL_BAD error.
+       */
+      if (err == EGL_BAD_ATTRIBUTE)
+          return _eglError(err, __func__);
+
       err = _eglParseEXTImageDmaBufImportModifiersAttribs(attrs, dpy, attr, val);
       if (err == EGL_SUCCESS)
           continue;