summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2024-12-09 17:29:11 +0200
committerMarius Vlad <marius.vlad@collabora.com>2024-12-09 19:52:56 +0200
commit71da04c74d967de1ba42d124829d2ec936857a7a (patch)
tree53b968753335971a38ad761337ca4610f2294e19
parent896f27c979571452f15447bb9752fc46a99f5177 (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.c5
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;
}