From: Marek Olšák <marek.ol...@amd.com> This is a fix for the EGL 1.5 patch series. --- src/egl/main/eglapi.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 7afc091..3df4968 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -263,13 +263,14 @@ _eglConvertAttribsToInt(const EGLAttrib *attr_list) while (attr_list[size] != EGL_NONE) size += 2; - if (size) { - size += 1; /* add space for EGL_NONE */ - int_attribs = malloc(size * sizeof(int_attribs[0])); + size += 1; /* add space for EGL_NONE */ - for (i = 0; i < size; i++) - int_attribs[i] = attr_list[i]; - } + int_attribs = malloc(size * sizeof(int_attribs[0])); + if (!int_attribs) + return NULL; + + for (i = 0; i < size; i++) + int_attribs[i] = attr_list[i]; } return int_attribs; } @@ -332,6 +333,9 @@ eglGetPlatformDisplay(EGLenum platform, void *native_display, EGLDisplay display; EGLint *int_attribs = _eglConvertAttribsToInt(attrib_list); + if (attrib_list && !int_attribs) + RETURN_EGL_ERROR(NULL, EGL_BAD_ALLOC, NULL); + display = eglGetPlatformDisplayEXT(platform, native_display, int_attribs); free(int_attribs); return display; @@ -786,6 +790,9 @@ eglCreatePlatformWindowSurface(EGLDisplay dpy, EGLConfig config, EGLSurface surface; EGLint *int_attribs = _eglConvertAttribsToInt(attrib_list); + if (attrib_list && !int_attribs) + RETURN_EGL_ERROR(NULL, EGL_BAD_ALLOC, EGL_NO_SURFACE); + surface = eglCreatePlatformWindowSurfaceEXT(dpy, config, native_window, int_attribs); free(int_attribs); @@ -854,6 +861,9 @@ eglCreatePlatformPixmapSurface(EGLDisplay dpy, EGLConfig config, EGLSurface surface; EGLint *int_attribs = _eglConvertAttribsToInt(attrib_list); + if (attrib_list && !int_attribs) + RETURN_EGL_ERROR(NULL, EGL_BAD_ALLOC, EGL_NO_SURFACE); + surface = eglCreatePlatformPixmapSurfaceEXT(dpy, config, native_pixmap, int_attribs); free(int_attribs); @@ -1343,6 +1353,9 @@ eglCreateImage(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLImage image; EGLint *int_attribs = _eglConvertAttribsToInt(attr_list); + if (attr_list && !int_attribs) + RETURN_EGL_ERROR(NULL, EGL_BAD_ALLOC, EGL_NO_IMAGE); + image = eglCreateImageKHR(dpy, ctx, target, buffer, int_attribs); free(int_attribs); return image; -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev