summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Faye-Lund <[email protected]>2018-09-20 09:21:38 +0100
committerErik Faye-Lund <[email protected]>2018-09-27 10:33:44 +0200
commitc3486cd8c9092cbe33dfc77b906e2475b1e32c8d (patch)
tree7c4d118167f3b669282b727655f584b49a08155c
parentdd333c66bdcb11c0d7c522642761490aced2b7ab (diff)
st/mesa: do not call update_framebuffer_size with NULL pointer
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 <[email protected]> Reviewed-by: Guillaume Charifi <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r--src/mesa/state_tracker/st_atom_framebuffer.c3
1 files changed, 2 insertions, 1 deletions
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;