summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDawid Gajownik <gajownik@gmail.com>2015-08-06 21:04:16 -0300
committerBryce Harrington <bryce@osg.samsung.com>2015-08-07 12:28:19 -0700
commit2f7d33d984a93b46ba87e032c0709eae9d50fe0b (patch)
tree26c5bc10891f1bb683058466d60c70ffeb18df0e
parent58106d78bb75201aea8d0226407dc6ddaf304188 (diff)
compositor: fix crash when destroying incompletely created output
When the output can't be completely created in the backend (for example lack of memory), weston_compositor_add_output() is never run. In such a case output->link is not initialized. Letter, when weston_output_destroy() is called, application crashes on wl_list_remove(&output->link). This problem happens when drm, fbdev, rdp, rpi or wayland backend is used. v2: Initialize output->link in weston_output_init() as suggested by Derek Foreman. Signed-off-by: Dawid Gajownik <gajownik@gmail.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
-rw-r--r--src/compositor.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/compositor.c b/src/compositor.c
index e27f44e9..0268afca 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -4077,6 +4077,7 @@ weston_output_init(struct weston_output *output, struct weston_compositor *c,
wl_list_init(&output->animation_list);
wl_list_init(&output->resource_list);
wl_list_init(&output->feedback_list);
+ wl_list_init(&output->link);
loop = wl_display_get_event_loop(c->wl_display);
output->repaint_timer = wl_event_loop_add_timer(loop,