From b36a14c0b0e7e38406622eb5ff0666a8b8bc50f4 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Mon, 2 Apr 2018 16:41:18 +0100 Subject: [PATCH] xwayland: zero num_modifiers from the start MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The caller may ignore the return value (will be addressed with later commit) so simply zero the count from the get-go. We're pretty much do so, in all cases but one :-\ Fixes: cef12efc15c ("glamor: Implement GetSupportedModifiers") Cc: Louis-Francis Ratté-Boulianne Cc: Daniel Stone Reviewed-by: Adam Jackson Signed-off-by: Emil Velikov --- hw/xwayland/xwayland-glamor.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c index 339420e05..59461be1f 100644 --- a/hw/xwayland/xwayland-glamor.c +++ b/hw/xwayland/xwayland-glamor.c @@ -779,13 +779,14 @@ glamor_get_modifiers(ScreenPtr screen, CARD32 format, struct xwl_format *xwl_format = NULL; int i; + /* Explicitly zero the count as the caller may ignore the return value */ + *num_modifiers = 0; + if (!xwl_screen->dmabuf_capable || !xwl_screen->dmabuf) return FALSE; - if (xwl_screen->num_formats == 0) { - *num_modifiers = 0; - return TRUE; - } + if (xwl_screen->num_formats == 0) + return TRUE; for (i = 0; i < xwl_screen->num_formats; i++) { if (xwl_screen->formats[i].format == format) { @@ -794,16 +795,12 @@ glamor_get_modifiers(ScreenPtr screen, CARD32 format, } } - if (!xwl_format) { - *num_modifiers = 0; + if (!xwl_format) return FALSE; - } *modifiers = calloc(xwl_format->num_modifiers, sizeof(uint64_t)); - if (*modifiers == NULL) { - *num_modifiers = 0; + if (*modifiers == NULL) return FALSE; - } for (i = 0; i < xwl_format->num_modifiers; i++) (*modifiers)[i] = xwl_format->modifiers[i];