From d6b26b3fa0c46c6a9d9c9e5d3816a713dfa261a7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 30 Apr 2021 14:27:44 +1000 Subject: [PATCH] Fix potential buffer overrun in drw_shader_dependencies_get Logical error let this function to write one past the buffer bounds. --- source/blender/draw/intern/draw_manager_shader.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/draw/intern/draw_manager_shader.c b/source/blender/draw/intern/draw_manager_shader.c index c93cbf16a30..2aad1f10154 100644 --- a/source/blender/draw/intern/draw_manager_shader.c +++ b/source/blender/draw/intern/draw_manager_shader.c @@ -606,10 +606,10 @@ static uint32_t drw_shader_dependencies_get(const DRWShaderLibrary *lib, const c haystack += 16; int dep = drw_shader_library_search(lib, haystack); if (dep == -1) { - char dbg_name[32]; + char dbg_name[33]; int i = 0; - while ((haystack[0] != ')') && (i < 31)) { - dbg_name[i] = haystack[0]; + while ((*haystack != ')') && (i < (sizeof(dbg_name) - 2))) { + dbg_name[i] = *haystack; haystack++; i++; }