modpost: fix segfault with short symbol names
memcmp() is wrong here, the symbol name can be shorter than KSYMTAB_PFX or CRC_PFX. Signed-off-by: Michal Marek <mmarek@suse.cz> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Родитель
d4703aefdb
Коммит
8d99513c1b
|
@ -522,7 +522,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,
|
|||
break;
|
||||
case SHN_ABS:
|
||||
/* CRC'd symbol */
|
||||
if (memcmp(symname, CRC_PFX, strlen(CRC_PFX)) == 0) {
|
||||
if (strncmp(symname, CRC_PFX, strlen(CRC_PFX)) == 0) {
|
||||
crc = (unsigned int) sym->st_value;
|
||||
sym_update_crc(symname + strlen(CRC_PFX), mod, crc,
|
||||
export);
|
||||
|
@ -566,7 +566,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,
|
|||
break;
|
||||
default:
|
||||
/* All exported symbols */
|
||||
if (memcmp(symname, KSYMTAB_PFX, strlen(KSYMTAB_PFX)) == 0) {
|
||||
if (strncmp(symname, KSYMTAB_PFX, strlen(KSYMTAB_PFX)) == 0) {
|
||||
sym_add_exported(symname + strlen(KSYMTAB_PFX), mod,
|
||||
export);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче