diff options
author | Alexei Starovoitov <ast@kernel.org> | 2024-09-04 11:56:34 -0700 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2024-09-04 12:35:04 -0700 |
commit | 5390f315fc8c9b9f48105a0d88b56bc59fa2b3e0 (patch) | |
tree | 324cbb6757e625a5079894ce62f9c0e4bc0f4eb9 /kernel/bpf/btf.c | |
parent | b408473ea01b2e499d23503e2bf898416da9d7ac (diff) | |
parent | 743070894724bf5ee0b2c77a28f838f6244d19bd (diff) |
Merge branch 'bpf-fix-incorrect-name-check-pass-logic-in-btf_name_valid_section'
Jeongjun Park says:
====================
bpf: fix incorrect name check pass logic in btf_name_valid_section
This patch was written to fix an issue where btf_name_valid_section() would
not properly check names with certain conditions and would throw an OOB vuln.
And selftest was added to verify this patch.
====================
Link: https://lore.kernel.org/r/20240831054525.364353-1-aha310510@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'kernel/bpf/btf.c')
-rw-r--r-- | kernel/bpf/btf.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c index e3377dd61f7e..a4e4f8d43ecf 100644 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@ -823,9 +823,11 @@ static bool btf_name_valid_section(const struct btf *btf, u32 offset) const char *src = btf_str_by_offset(btf, offset); const char *src_limit; + if (!*src) + return false; + /* set a limit on identifier length */ src_limit = src + KSYM_NAME_LEN; - src++; while (*src && src < src_limit) { if (!isprint(*src)) return false; |