Currently, get_default_output returns a first member
of the linked list, which can never be NULL.

This is problematic, as the function would return a
dangling pointer and NULL pointer checks wouldn't
work where needed and some of the invalid members
would get accessed that way, resulting in a crash.

Reviewed-by: Quentin Glidic <sardemff7+...@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paala...@collabora.co.uk>
Signed-off-by: Armin Krezović <krezovic.ar...@gmail.com>
---
 desktop-shell/shell.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 79cf8dd..c48d41a 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -688,6 +688,9 @@ shell_configuration(struct desktop_shell *shell)
 struct weston_output *
 get_default_output(struct weston_compositor *compositor)
 {
+       if (wl_list_empty(&compositor->output_list))
+               return NULL;
+
        return container_of(compositor->output_list.next,
                            struct weston_output, link);
 }
-- 
2.9.0

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to