From be55909779fc688dbb2f0d07fb126eb63af4ce20 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 3 May 2023 10:18:18 +0100 Subject: [PATCH] backend-drm: Don't leak writeback-format property blob We were freeing the writeback-format blob on error, but not on success. Signed-off-by: Daniel Stone --- libweston/backend-drm/drm.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c index 2c3edba4f..a5031c9a7 100644 --- a/libweston/backend-drm/drm.c +++ b/libweston/backend-drm/drm.c @@ -2796,6 +2796,7 @@ drm_writeback_populate_formats(struct drm_writeback *wb) drmModePropertyBlobPtr blob; uint32_t *blob_formats; unsigned int i; + int ret = 0; blob_id = drm_property_get_value(&info[WDRM_CONNECTOR_WRITEBACK_PIXEL_FORMATS], props, 0); @@ -2808,16 +2809,17 @@ drm_writeback_populate_formats(struct drm_writeback *wb) blob_formats = blob->data; - for (i = 0; i < blob->length / sizeof(uint32_t); i++) + for (i = 0; i < blob->length / sizeof(uint32_t); i++) { if (!weston_drm_format_array_add_format(&wb->formats, - blob_formats[i])) - goto err; + blob_formats[i])) { + ret = -1; + break; + } + } - return 0; - -err: drmModeFreePropertyBlob(blob); - return -1; + + return ret; } /**