From 570490cef5da40ad4688852489ce361e2ee1f056 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 5 Sep 2019 12:53:42 -0400 Subject: [PATCH] gl-renderer: Fix possible memory leak when no dmabuf modifers are supported Some drivers support EGL_EXT_image_dma_buf_import_modifiers for format enumeration, but don't have any modifiers. In this case, on platforms where malloc(0) returns non-NULL, we would leak that allocation to the caller. Handle this by noticing when the number of supported modifiers is 0 and returning early. --- libweston/renderer-gl/gl-renderer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c index 027185c85..cecb02a66 100644 --- a/libweston/renderer-gl/gl-renderer.c +++ b/libweston/renderer-gl/gl-renderer.c @@ -2424,7 +2424,8 @@ gl_renderer_query_dmabuf_modifiers(struct weston_compositor *wc, int format, if (!gr->has_dmabuf_import_modifiers || !gr->query_dmabuf_modifiers(gr->egl_display, format, 0, NULL, - NULL, &num)) { + NULL, &num) || + num == 0) { *num_modifiers = 0; return; }