From a73982d7376a71cf6e230b255069da46fe2becc9 Mon Sep 17 00:00:00 2001 From: Xiang W Date: Mon, 10 Jul 2023 00:03:26 +0800 Subject: [PATCH] lib: sbi: Fix missing '\0' when buffer szie equal 1 Fix special case: sbi_snprintf(out, out_len, ...) when out_len equal 1, The previous code will not fill the buffer with any char. Signed-off-by: Xiang W Reviewed-by: Anup Patel --- lib/sbi/sbi_console.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/sbi/sbi_console.c b/lib/sbi/sbi_console.c index 07a90452..2b3b0a3f 100644 --- a/lib/sbi/sbi_console.c +++ b/lib/sbi/sbi_console.c @@ -271,6 +271,12 @@ static int print(char **out, u32 *out_len, const char *format, va_list args) out_len = &console_tbuf_len; } + /* handle special case: *out_len == 1*/ + if (out) { + if(!out_len || *out_len) + **out = '\0'; + } + for (; *format != 0; ++format) { width = flags = 0; if (use_tbuf)