From d2166a9d4045013654b04a1a46ab43fdb7dabb95 Mon Sep 17 00:00:00 2001 From: Jimmy Ho Date: Fri, 21 Mar 2025 08:14:50 +0800 Subject: [PATCH] lib: sbi: Handle length of extension name string exceed buffer size error print error message and turncat the string when length of extension name string exceed buffer size Signed-off-by: Jimmy Ho Reviewed-by: Nick Hu Reviewed-by: Zong Li Link: https://lore.kernel.org/r/20250321001450.11189-1-jimmy.ho@sifive.com Signed-off-by: Anup Patel --- lib/sbi/sbi_hart.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index c343805c..eefb03f2 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -721,6 +721,10 @@ void sbi_hart_get_extensions_str(struct sbi_scratch *scratch, sbi_memset(extensions_str, 0, nestr); for_each_set_bit(ext, hfeatures->extensions, SBI_HART_EXT_MAX) { + if (offset + sbi_strlen(sbi_hart_ext[ext].name) + 1 > nestr) { + sbi_printf("%s:extension name is longer than buffer (error)\n", __func__); + break; + } sbi_snprintf(extensions_str + offset, nestr - offset, "%s,", sbi_hart_ext[ext].name);