From: Marius Vlad Date: Fri, 15 Dec 2023 10:21:49 +0000 (+0200) Subject: shell: Don't assume an output previously set-up X-Git-Tag: 17.90.0~5 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=675456391e4f74559661206ec919cb5f6cb46f69;p=src%2Fagl-compositor.git shell: Don't assume an output previously set-up This is unlikely to happen in practice, but discovered while doing a code audit, so let's let be on the safe side and don't attempt to deref as we'll get invalid memory. Bug-AGL: SPEC-5018 Signed-off-by: Marius Vlad Change-Id: Ib874a7194ab3a7019a304ec4c1974824c78b26cc --- diff --git a/src/shell.c b/src/shell.c index f5dc3e3..5157830 100644 --- a/src/shell.c +++ b/src/shell.c @@ -1622,9 +1622,8 @@ shell_set_app_output(struct wl_client *client, struct wl_resource *res, struct weston_output *woutput = weston_head_get_output(head); struct ivi_output *ioutput = to_ivi_output(woutput); struct ivi_surface *surf = ivi_find_app(ivi, app_id); - struct ivi_output *desktop_last_output = surf->desktop.last_output; - struct ivi_output *current_completed_output = - surf->current_completed_output; + struct ivi_output *desktop_last_output; + struct ivi_output *current_completed_output; if (!app_id || !ioutput) return; @@ -1636,6 +1635,9 @@ shell_set_app_output(struct wl_client *client, struct wl_resource *res, return; } + desktop_last_output = surf->desktop.last_output; + current_completed_output = surf->current_completed_output; + if (surf->remote.output) surf->hidden_layer_output = surf->remote.output; else