fix(kernel): validate symbol entries to prevent processing of invalid symbols

This commit is contained in:
EnderIce2 2025-04-07 05:35:17 +00:00
parent 2d2d28689c
commit a16a88b5f9
Signed by: enderice2
GPG Key ID: FEB6B8A8507BA62E

View File

@ -178,6 +178,12 @@ namespace SymbolResolver
continue; continue;
} }
if (unlikely(sym->st_name == (Elf_Word)-1 || sym->st_value == (Elf_Addr)-1 || sym->st_size == (uintptr_t)-1))
{
error("Symbol %d is invalid", i);
continue;
}
name = (const char *)&StringAddress[Symbols[i].st_name]; name = (const char *)&StringAddress[Symbols[i].st_name];
if (!vmm.Check((void *)name)) if (!vmm.Check((void *)name))
{ {