From c3486cd8c9092cbe33dfc77b906e2475b1e32c8d Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 20 Sep 2018 09:21:38 +0100 Subject: [PATCH] st/mesa: do not call update_framebuffer_size with NULL pointer MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In st_renderbuffer_alloc_storage, we avoid allocating storage for zero-sized buffers, leading to this pointer being NULL. We already take care to avoid dereferencing these pointers for color-buffers, but not for depth/stencil-buffers. So let's thread a bit more carefully here. This avoids a crash while running Piglit's glx/glx-visuals-stencil test, both on virgl and r600g. Signed-off-by: Erik Faye-Lund Reviewed-by: Guillaume Charifi Reviewed-by: Marek Olšák --- src/mesa/state_tracker/st_atom_framebuffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_atom_framebuffer.c b/src/mesa/state_tracker/st_atom_framebuffer.c index 807c312a5db..a0dd0d1f649 100644 --- a/src/mesa/state_tracker/st_atom_framebuffer.c +++ b/src/mesa/state_tracker/st_atom_framebuffer.c @@ -181,7 +181,8 @@ st_update_framebuffer_state( struct st_context *st ) st_update_renderbuffer_surface(st, strb); } framebuffer.zsbuf = strb->surface; - update_framebuffer_size(&framebuffer, strb->surface); + if (strb->surface) + update_framebuffer_size(&framebuffer, strb->surface); } else framebuffer.zsbuf = NULL; -- 2.30.2