mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 11:16:11 +00:00
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:
parent
d4703aefdb
commit
8d99513c1b
1 changed files with 2 additions and 2 deletions
|
@ -522,7 +522,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,
|
||||||
break;
|
break;
|
||||||
case SHN_ABS:
|
case SHN_ABS:
|
||||||
/* CRC'd symbol */
|
/* 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;
|
crc = (unsigned int) sym->st_value;
|
||||||
sym_update_crc(symname + strlen(CRC_PFX), mod, crc,
|
sym_update_crc(symname + strlen(CRC_PFX), mod, crc,
|
||||||
export);
|
export);
|
||||||
|
@ -566,7 +566,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* All exported symbols */
|
/* 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,
|
sym_add_exported(symname + strlen(KSYMTAB_PFX), mod,
|
||||||
export);
|
export);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue