Module: Mesa Branch: staging/21.2 Commit: c90937aa10f4c66fe17c20ce568b02e5e33bd6b2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c90937aa10f4c66fe17c20ce568b02e5e33bd6b2
Author: Alyssa Rosenzweig <[email protected]> Date: Mon Aug 23 13:42:23 2021 -0400 panfrost: Zero initialize blend_shaders Fixes an invalid read caught by valgrind when there is a hole in the valid render target mask: ==6749== Conditional jump or move depends on uninitialised value(s) ==6749== at 0x5E88EC0: panfrost_prepare_fs_state (pan_cmdstream.c:417) ==6749== by 0x5E88EC0: panfrost_emit_frag_shader (pan_cmdstream.c:501) ==6749== by 0x5E88EC0: panfrost_emit_frag_shader_meta (pan_cmdstream.c:573) ==6749== by 0x5E88EC0: panfrost_update_state_fs (pan_cmdstream.c:2593) ==6749== by 0x5E8B0BF: panfrost_direct_draw (pan_cmdstream.c:2839) Signed-off-by: Alyssa Rosenzweig <[email protected]> Fixes: a124c47b9f9 ("panfrost: Fix NULL derefs in pan_cmdstream.c") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11383> (cherry picked from commit 3113dbd83710899c82478646011c1e1832f04fa1) --- .pick_status.json | 2 +- src/gallium/drivers/panfrost/pan_cmdstream.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 1603df614ca..ed12d455ef7 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -274,7 +274,7 @@ "description": "panfrost: Zero initialize blend_shaders", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "a124c47b9f90c3f18032928c24a06d157a0334c1" }, diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index 88aab01d891..4d3a442eac9 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -695,7 +695,7 @@ panfrost_emit_frag_shader_meta(struct panfrost_batch *batch) PAN_DESC_ARRAY(rt_count, BLEND)); } - mali_ptr blend_shaders[PIPE_MAX_COLOR_BUFS]; + mali_ptr blend_shaders[PIPE_MAX_COLOR_BUFS] = { 0 }; unsigned shader_offset = 0; struct panfrost_bo *shader_bo = NULL;
