[PATCH vkd3d 1/2] vkd3d-shader: Avoid reading past the end of the buffer in vkd3d_shader_trace() (Valgrind).
Zebediah Figura
zfigura at codeweavers.com
Thu Oct 15 10:44:44 CDT 2020
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
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 9b49ca1d..e9c462e5 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);
--
2.28.0
More information about the wine-devel
mailing list