From 85e06f5a5555d3580a8040cc01bcd1bf3555547f Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 6 Dec 2024 10:50:21 -0500 Subject: [PATCH] util/printf: be robust against truncated buffers this can happen with shader aborts. don't blow up with theatrics. Signed-off-by: Alyssa Rosenzweig Reviewed-by: Konstantin Seurer Reviewed-by: Lionel Landwerlin Part-of: --- src/util/u_printf.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/util/u_printf.c b/src/util/u_printf.c index 5422b158b97..79ecca578c5 100644 --- a/src/util/u_printf.c +++ b/src/util/u_printf.c @@ -144,6 +144,10 @@ u_printf_impl(FILE *out, const char *buffer, size_t buffer_size, for (size_t buf_pos = 0; buf_pos < buffer_size;) { uint32_t fmt_idx = *(uint32_t*)&buffer[buf_pos]; + /* Don't die on invalid printf buffers due to aborted shaders. */ + if (fmt_idx == 0) + break; + /* the idx is 1 based */ assert(fmt_idx > 0); fmt_idx -= 1;