From c63acc4cb891e6b89f76ceddfda0a49cd8bda2bd Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Wed, 2 May 2018 10:21:58 +0200 Subject: [PATCH] desktop-shell: survive NULL output in shell_configure_fullscreen() Running 'weston-simple-egl -f -b' (fullscreen, unthrottled) caused a crash in shell_ensure_fullscreen_black_view() due to shsurf->fullscreen_output being NULL. Also shell_configure_fullscreen() could crash on that condition. Fix shell_configure_fullscreen() to bail out with minimal work if there is no fullscreen_output. It is unclear if anything will cause a reconfiguration when an output is plugged in. Signed-off-by: Pekka Paalanen Signed-off-by: Fabien Lahoudere Reviewed-by: Ian Ray --- desktop-shell/shell.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index fb2d5e85..42fc27c6 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -2176,6 +2176,13 @@ shell_configure_fullscreen(struct shell_surface *shsurf) weston_layer_entry_insert(&shsurf->shell->fullscreen_layer.view_list, &shsurf->view->layer_link); + if (!shsurf->fullscreen_output) { + /* If there is no output, there's not much we can do. + * Position the window somewhere, whatever. */ + weston_view_set_position(shsurf->view, 0, 0); + return; + } + shell_ensure_fullscreen_black_view(shsurf); surface_subsurfaces_boundingbox(surface, &surf_x, &surf_y,