diff options
| author | Jimmy Ho <[email protected]> | 2025-03-21 08:14:50 +0800 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2025-04-21 08:42:01 +0530 |
| commit | d2166a9d4045013654b04a1a46ab43fdb7dabb95 (patch) | |
| tree | 0a1f6e42d88f9ff9976438fccfb7cacc33d43cf9 | |
| parent | 190979b4fce6ded989338a0943feeb035db7b75a (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.c | 4 |
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); |
