[PATCH weston 02/12] desktop-shell: Return NULL when no outputs are present

Armin Krezović krezovic.armin at gmail.com
Thu Jun 23 09:59:30 UTC 2016


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+git at sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
Signed-off-by: Armin Krezović <krezovic.armin at 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



More information about the wayland-devel mailing list