From 71da04c74d967de1ba42d124829d2ec936857a7a Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Mon, 9 Dec 2024 17:29:11 +0200 Subject: compositor: Don't leak ivi_backend upon failure to load backend Bug-AGL: SPEC-5317 Signed-off-by: Marius Vlad Change-Id: Ie8ec8f36d68c6a6d9a157bc555a3e6c48a620529 --- src/compositor.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/compositor.c b/src/compositor.c index 6aec416..00cf8d5 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -940,6 +940,7 @@ load_drm_backend(struct ivi_compositor *ivi, int *argc, char *argv[], &config.base); if (!ivi_backend->backend) { weston_log("Failed to load DRM backend\n"); + free(ivi_backend); return -1; } @@ -1103,6 +1104,7 @@ load_wayland_backend(struct ivi_compositor *ivi, int *argc, char *argv[], if (!ivi_backend->backend) { weston_log("Failed to create Wayland backend!\n"); + free(ivi_backend); return -1; } @@ -1187,6 +1189,7 @@ load_x11_backend(struct ivi_compositor *ivi, int *argc, char *argv[], &config.base); if (!ivi_backend->backend) { weston_log("Failed to create X11 backend!\n"); + free(ivi_backend); return -1; } @@ -1353,6 +1356,7 @@ load_rdp_backend(struct ivi_compositor *ivi, int *argc, char **argv, WESTON_BACKEND_RDP, &config.base); if (!ivi_backend->backend) { weston_log("Failed to create RDP backend\n"); + free(ivi_backend); return -1; } @@ -1479,6 +1483,7 @@ load_pipewire_backend(struct ivi_compositor *ivi, int *argc, char **argv, WESTON_BACKEND_PIPEWIRE, &config.base); if (!ivi_backend->backend) { weston_log("Failed to create PipeWire backend\n"); + free(ivi_backend); return -1; } -- cgit