From 655a32f729a46176c1fc0c1727b33c15c69cad78 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Thu, 13 Jul 2017 01:21:00 -0600 Subject: st/mesa: Handle st_framebuffer_create returning NULL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit st_framebuffer_create returns NULL if stfbi == NULL or st_framebuffer_add_renderbuffer returns false for the colour buffer. Fixes Xorg crashing on startup using glamor on radeonsi. Fixes: 147d7fb772a7 ("st/mesa: add a winsys buffers list in st_context") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101775 Signed-off-by: Michel Dänzer Reviewed-by: Nicolai Hähnle Reviewed-by: Brian Paul --- src/mesa/state_tracker/st_manager.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index de16a3a2cf0..348b456c4d1 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -802,10 +802,12 @@ st_framebuffer_reuse_or_create(struct st_context *st, if (stfb == NULL) { cur = st_framebuffer_create(st, stfbi); - /* add to the context's winsys buffers list */ - LIST_ADD(&cur->head, &st->winsys_buffers); + if (cur) { + /* add to the context's winsys buffers list */ + LIST_ADD(&cur->head, &st->winsys_buffers); - st_framebuffer_reference(&stfb, cur); + st_framebuffer_reference(&stfb, cur); + } } return stfb; -- cgit v1.2.3