diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c --- a/sys/kern/link_elf.c +++ b/sys/kern/link_elf.c @@ -1567,6 +1567,11 @@ return (ENOENT); } + if (symp->st_name >= ef->strsz) { + printf("%s: corrupt symbol table\n", __func__); + return (ENOENT); + } + strp = ef->strtab + symp->st_name; if (strcmp(name, strp) == 0) {