summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy Ho <[email protected]>2025-03-21 08:14:50 +0800
committerAnup Patel <[email protected]>2025-04-21 08:42:01 +0530
commitd2166a9d4045013654b04a1a46ab43fdb7dabb95 (patch)
tree0a1f6e42d88f9ff9976438fccfb7cacc33d43cf9
parent190979b4fce6ded989338a0943feeb035db7b75a (diff)
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 <[email protected]> Reviewed-by: Nick Hu <[email protected]> Reviewed-by: Zong Li <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Anup Patel <[email protected]>
-rw-r--r--lib/sbi/sbi_hart.c4
1 files changed, 4 insertions, 0 deletions
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);