diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2016-01-19 00:58:15 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-02-10 12:01:01 +1000 |
commit | e0e423aacd8dc01eaa043a1c1aebd23e048288c9 (patch) | |
tree | 7cc9c00ef6ad04806375820e5961bc3ca9dd52f1 | |
parent | 9033b26976dbca8d67a6ec5538711d02730cc2f1 (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.c | 5 |
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); |