[PATCH v8 11/11] lib: sbi: Fix missing '\0' when buffer szie equal 1

Xiang W wxjstz at 126.com
Wed Jul 5 07:37:54 PDT 2023


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 <wxjstz at 126.com>
---
 lib/sbi/sbi_console.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/sbi/sbi_console.c b/lib/sbi/sbi_console.c
index 00feec8..0703d4a 100644
--- a/lib/sbi/sbi_console.c
+++ b/lib/sbi/sbi_console.c
@@ -271,6 +271,10 @@ 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)
+		**out = '\0';
+
 	for (; *format != 0; ++format) {
 		width = flags = 0;
 		if (use_tbuf)
-- 
2.40.1




More information about the opensbi mailing list