diff options
author | 2024-12-09 17:29:11 +0200 | |
---|---|---|
committer | 2024-12-09 19:52:56 +0200 | |
commit | 71da04c74d967de1ba42d124829d2ec936857a7a (patch) | |
tree | 53b968753335971a38ad761337ca4610f2294e19 | |
parent | 896f27c979571452f15447bb9752fc46a99f5177 (diff) |
compositor: Don't leak ivi_backend upon failure to load backend
Bug-AGL: SPEC-5317
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie8ec8f36d68c6a6d9a157bc555a3e6c48a620529
-rw-r--r-- | src/compositor.c | 5 |
1 files changed, 5 insertions, 0 deletions
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; } |