Zebediah Figura : vkd3d-shader: Avoid reading past the end of the buffer in vkd3d_string_buffer_trace() (Valgrind).
Module: vkd3d Branch: master Commit: dffff8bdbc97acbbaab8bd0e860190ea4987984c URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=dffff8bdbc97acbbaab8bd0e... Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Thu Oct 15 10:44:45 2020 -0500 vkd3d-shader: Avoid reading past the end of the buffer in vkd3d_string_buffer_trace() (Valgrind). Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/vkd3d_shader_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d-shader/vkd3d_shader_main.c index 7c3885e..664110e 100644 --- a/libs/vkd3d-shader/vkd3d_shader_main.c +++ b/libs/vkd3d-shader/vkd3d_shader_main.c @@ -93,15 +93,15 @@ static int VKD3D_PRINTF_FUNC(2, 3) vkd3d_string_buffer_printf(struct vkd3d_strin static void vkd3d_string_buffer_trace_(const struct vkd3d_string_buffer *buffer, const char *function) { - const char *p, *q; + const char *p, *q, *end = buffer->buffer + buffer->content_size; if (!TRACE_ON()) return; - for (p = buffer->buffer; *p; p = q) + for (p = buffer->buffer; p < end; p = q) { - if (!(q = strchr(p, '\n'))) - q = p + strlen(p); + if (!(q = memchr(p, '\n', end - p))) + q = end; else ++q; vkd3d_dbg_printf(VKD3D_DBG_LEVEL_TRACE, function, "%.*s", (int)(q - p), p);
participants (1)
-
Alexandre Julliard