Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d99513c authored by Michal Marek's avatar Michal Marek Committed by Rusty Russell
Browse files

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: default avatarMichal Marek <mmarek@suse.cz>
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent d4703aef
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);
		}