From: Michal Marek <mmarek@suse.cz>
To: stable@kernel.org
Cc: "Krzysztof Hałasa" <khc@pm.waw.pl>, Alan <alan@clueserver.org>,
linux-kernel@vger.kernel.org
Subject: [PATCH for stable] kbuild: Fix modpost segfault
Date: Tue, 29 Jun 2010 11:43:42 +0200 [thread overview]
Message-ID: <20100629094341.GA26045@sepie.suse.cz> (raw)
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 <khc@pm.waw.pl>
Alan <alan@clueserver.org> writes:
> program: /home/alan/GitTrees/linux-2.6-mid-ref/scripts/mod/modpost -o
> Module.symvers -S vmlinux.o
>
> Program 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.
Reported-by: Alan <alan@clueserver.org>
Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
Tested-by: Alan <alan@clueserver.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 3318692..f877900 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -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)
next reply other threads:[~2010-06-29 9:43 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-29 9:43 Michal Marek [this message]
2010-06-29 12:54 ` [stable] [PATCH for stable] kbuild: Fix modpost segfault Greg KH
2010-06-29 13:33 ` Michal Marek
2010-06-29 13:39 ` Greg KH
2010-06-29 22:35 ` Alan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100629094341.GA26045@sepie.suse.cz \
--to=mmarek@suse.cz \
--cc=alan@clueserver.org \
--cc=khc@pm.waw.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox