kbuild: Fix modpost segfault
PATCH 1/1 kbuild: Fix modpost segfault
Hi Greg,
please add this to stable, it's a bug that started showing up with newer gcc. The upstream commit is 1c938663d58b5b2965976a6f54cc51b5d6f691aa.
Thanks,
Michal
From: Krzysztof Halasa <[email protected]>
Quoted 4 lines · Alan
program:
/home/alan/GitTrees/linux-2.6-mid-ref/scripts/mod/modpost-o Module.symvers -S vmlinux.oProgram received signal SIGSEGV, Segmentation fault.
It just hit me.
It's the offset calculation in reloc_location() which overflows:
return (void *)elf->hdr + sechdrs[section].sh_offset +
(r->r_offset - sechdrs[section].sh_addr);E.g. for the first rodata r entry:r->r_offset < sechdrs[section].sh_addr
and the expression in the parenthesis produces 0xFFFFFFE0 or something equally wise.
scripts/mod/modpost.c +1 -1
@@ -1342,7 +1342,7 @@ static unsigned int *reloc_location(struct elf_info *elf,int section = sechdr->sh_info;return (void *)elf->hdr + sechdrs[section].sh_offset + - (r->r_offset - sechdrs[section].sh_addr); + r->r_offset - sechdrs[section].sh_addr; }static int addend_386_rel (struct elf_info *elf,Elf_Shdr *sechdr,Elf_Rela *r)
Quoted 4 lines · Michal Marek
Hi Greg,
please add this to stable, it's a bug that started showing up with newer gcc. The upstream commit is
1c938663d58b5b2965976a6f54cc51b5d6f691aa.
What -stable kernels do you want it applied to? .27, .32, .33, and/or .34?
thanks,
greg k-h
Quoted 8 lines · Greg KH
Quoted 4 lines · Michal Marek
Hi Greg,
please add this to stable, it's a bug that started showing up with newer gcc. The upstream commit is
1c938663d58b5b2965976a6f54cc51b5d6f691aa.What -stable kernels do you want it applied to? .27, .32, .33, and/or .34?
I'd say all of them. I just tried it and applies cleanly.
Michal
Quoted 11 lines · Michal Marek
Quoted 8 lines · Greg KH
Quoted 4 lines · Michal Marek
Hi Greg,
please add this to stable, it's a bug that started showing up with newer gcc. The upstream commit is
1c938663d58b5b2965976a6f54cc51b5d6f691aa.What -stable kernels do you want it applied to? .27, .32, .33, and/or .34?
I'd say all of them. I just tried it and applies cleanly.
Ok, thanks, will do.
greg k-h
Quoted 8 lines · Greg KH
Quoted 7 lines · Michal Marek
Quoted 6 lines · Greg KH
Quoted 4 lines · Michal Marek
Hi Greg,
please add this to stable, it's a bug that started showing up with newer gcc. The upstream commit is
1c938663d58b5b2965976a6f54cc51b5d6f691aa.
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines
What -stable kernels do you want it applied to? .27, .32, .33, and/or .34?
I'd say all of them. I just tried it and applies cleanly.
Ok, thanks, will do.
Thanks. That fixes a major build problem for me.