Currently, display_get_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>
---
 clients/window.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/clients/window.c b/clients/window.c
index b5b598f..4de73ed 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -5845,6 +5845,9 @@ display_get_cairo_device(struct display *display)
 struct output *
 display_get_output(struct display *display)
 {
+       if (wl_list_empty(&display->output_list))
+               return NULL;
+
        return container_of(display->output_list.next, struct 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