From 73065c784302151a0f73fe19478ef2eec6f6f198 Mon Sep 17 00:00:00 2001 From: zerico <71151164+ZERICO2005@users.noreply.github.com> Date: Tue, 24 Feb 2026 17:18:01 -0700 Subject: [PATCH] fixed (v)asprintf when the output length is zero --- src/libc/printf/nanoprintf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libc/printf/nanoprintf.c b/src/libc/printf/nanoprintf.c index 1dccc2753..27df7e80d 100644 --- a/src/libc/printf/nanoprintf.c +++ b/src/libc/printf/nanoprintf.c @@ -85,7 +85,7 @@ int sprintf(char *__restrict buffer, const char *__restrict format, ...) int vasprintf(char **__restrict p_str, const char *__restrict format, va_list vlist) { *p_str = NULL; int str_len = vsnprintf(NULL, 0, format, vlist); - if (str_len <= 0) { + if (str_len < 0) { return str_len; } size_t buf_len = (size_t)str_len + 1; @@ -95,7 +95,7 @@ int vasprintf(char **__restrict p_str, const char *__restrict format, va_list vl return -1; } int ret = vsnprintf(buf, buf_len, format, vlist); - if (ret <= 0) { + if (ret < 0) { free(buf); return ret; }