Zebediah Figura : vkd3d-shader: Avoid reading past the end of the buffer in vkd3d_shader_trace() (Valgrind).
Module: vkd3d Branch: master Commit: 86cf5145dc58b00b7311c4f3651601233024fb8e URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=86cf5145dc58b00b7311c4f3... Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Thu Oct 15 10:44:44 2020 -0500 vkd3d-shader: Avoid reading past the end of the buffer in vkd3d_shader_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/trace.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c index 9b49ca1..e9c462e 100644 --- a/libs/vkd3d-shader/trace.c +++ b/libs/vkd3d-shader/trace.c @@ -1618,16 +1618,17 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(void *data, struct vkd3d_shader_code void vkd3d_shader_trace(void *data) { - const char *p, *q; + const char *p, *q, *end; struct vkd3d_shader_code code; if (vkd3d_dxbc_binary_to_text(data, &code) != VKD3D_OK) return; - for (p = code.code; *p; p = q) + end = (const char *)code.code + code.size; + for (p = code.code; p < end; p = q) { - if (!(q = strstr(p, "\n"))) - q = p + strlen(p); + if (!(q = memchr(p, '\n', end - p))) + q = end; else ++q; TRACE(" %.*s", (int)(q - p), p);
participants (1)
-
Alexandre Julliard