summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2016-01-19 00:58:15 +0100
committerDave Airlie <airlied@redhat.com>2016-02-10 12:01:01 +1000
commite0e423aacd8dc01eaa043a1c1aebd23e048288c9 (patch)
tree7cc9c00ef6ad04806375820e5961bc3ca9dd52f1
parent9033b26976dbca8d67a6ec5538711d02730cc2f1 (diff)
renderer: avoid crash in vrend_destroy_shader_selector()
If we didn't run succesfully vrend_destroy_shader_selector(), sel->sinfo.so_names might be NULL. Fix found thanks to american fuzzy lop. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
-rw-r--r--src/vrend_renderer.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
index fd5f96f..510285a 100644
--- a/src/vrend_renderer.c
+++ b/src/vrend_renderer.c
@@ -560,8 +560,9 @@ static void vrend_destroy_shader_selector(struct vrend_shader_selector *sel)
vrend_shader_destroy(p);
p = c;
}
- for (i = 0; i < sel->sinfo.so_info.num_outputs; i++)
- free(sel->sinfo.so_names[i]);
+ if (sel->sinfo.so_names)
+ for (i = 0; i < sel->sinfo.so_info.num_outputs; i++)
+ free(sel->sinfo.so_names[i]);
free(sel->tmp_buf);
free(sel->sinfo.so_names);
free(sel->sinfo.interpinfo);