* 2.6.17-mm3: segvs in modpost with out-of-tree modules
@ 2006-06-28 16:51 Jeremy Fitzhardinge
2006-06-28 18:29 ` Andrew Morton
0 siblings, 1 reply; 4+ messages in thread
From: Jeremy Fitzhardinge @ 2006-06-28 16:51 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
I'm seeing SIGSEGVs in modpost when compiling the out-of-tree madwifi
driver:
/bin/sh: line 1: 3701 Segmentation fault scripts/mod/modpost -m -a
-i /home/jeremy/hg/linux-2.6/Module.symvers -I
/home/jeremy/svn/madwifi-ng/Modules.symvers -o
/home/jeremy/svn/madwifi-ng/Modules.symvers vmlinux
/home/jeremy/svn/madw ifi-ng/ath/ath_hal.o
/home/jeremy/svn/madwifi-ng/ath/ath_pci.o /home/jeremy/svn/
madwifi-ng/ath_rate/sample/ath_rate_sample.o
/home/jeremy/svn/madwifi-ng/net8021 1/wlan.o
/home/jeremy/svn/madwifi-ng/net80211/wlan_acl.o
/home/jeremy/svn/madwif i-ng/net80211/wlan_ccmp.o
/home/jeremy/svn/madwifi-ng/net80211/wlan_scan_ap.o
/home/jeremy/svn/madwifi-ng/net80211/wlan_scan_sta.o
/home/jeremy/svn/madwifi-ng/n et80211/wlan_tkip.o
/home/jeremy/svn/madwifi-ng/net80211/wlan_wep.o /home/jeremy
/svn/madwifi-ng/net80211/wlan_xauth.o
The backtrace is:
#0 0x4e8017da in strcmp () from /lib/libc.so.6
#1 0x080491a7 in export_no (s=0x0) at modpost.c:209
#2 0x0804b5c3 in read_dump (
fname=0xbff5fa9d "/home/jeremy/svn/madwifi-ng/Modules.symvers", kernel=0)
at modpost.c:1312
#3 0x0804b88b in main (argc=21, argv=0xbff5def4) at modpost.c:1390
I haven't really looked at yet, but I was hoping someone had already
tracked it down.
J
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: 2.6.17-mm3: segvs in modpost with out-of-tree modules 2006-06-28 16:51 2.6.17-mm3: segvs in modpost with out-of-tree modules Jeremy Fitzhardinge @ 2006-06-28 18:29 ` Andrew Morton 2006-06-28 18:44 ` Jeremy Fitzhardinge 0 siblings, 1 reply; 4+ messages in thread From: Andrew Morton @ 2006-06-28 18:29 UTC (permalink / raw) To: Jeremy Fitzhardinge; +Cc: linux-kernel, Ram Pai, Sam Ravnborg On Wed, 28 Jun 2006 09:51:11 -0700 Jeremy Fitzhardinge <jeremy@goop.org> wrote: > I'm seeing SIGSEGVs in modpost when compiling the out-of-tree madwifi > driver: > > /bin/sh: line 1: 3701 Segmentation fault scripts/mod/modpost -m -a > -i /home/jeremy/hg/linux-2.6/Module.symvers -I > /home/jeremy/svn/madwifi-ng/Modules.symvers -o > /home/jeremy/svn/madwifi-ng/Modules.symvers vmlinux > /home/jeremy/svn/madw ifi-ng/ath/ath_hal.o > /home/jeremy/svn/madwifi-ng/ath/ath_pci.o /home/jeremy/svn/ > madwifi-ng/ath_rate/sample/ath_rate_sample.o > /home/jeremy/svn/madwifi-ng/net8021 1/wlan.o > /home/jeremy/svn/madwifi-ng/net80211/wlan_acl.o > /home/jeremy/svn/madwif i-ng/net80211/wlan_ccmp.o > /home/jeremy/svn/madwifi-ng/net80211/wlan_scan_ap.o > /home/jeremy/svn/madwifi-ng/net80211/wlan_scan_sta.o > /home/jeremy/svn/madwifi-ng/n et80211/wlan_tkip.o > /home/jeremy/svn/madwifi-ng/net80211/wlan_wep.o /home/jeremy > /svn/madwifi-ng/net80211/wlan_xauth.o > > The backtrace is: > > #0 0x4e8017da in strcmp () from /lib/libc.so.6 > #1 0x080491a7 in export_no (s=0x0) at modpost.c:209 > #2 0x0804b5c3 in read_dump ( > fname=0xbff5fa9d "/home/jeremy/svn/madwifi-ng/Modules.symvers", kernel=0) > at modpost.c:1312 > #3 0x0804b88b in main (argc=21, argv=0xbff5def4) at modpost.c:1390 > > I haven't really looked at yet, but I was hoping someone had already > tracked it down. > Not that I'm aware of. if ((export = strchr(modname, '\t')) != NULL) *export++ = '\0'; if `export' can be NULL, crc = strtoul(line, &d, 16); if (*symname == '\0' || *modname == '\0' || *d != '\0') goto fail; if (!(mod = find_module(modname))) { if (is_vmlinux(modname)) { have_vmlinux = 1; } mod = new_module(NOFAIL(strdup(modname))); mod->skip = 1; } s = sym_add_exported(symname, mod, export_no(export)); that was a bad idea. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 2.6.17-mm3: segvs in modpost with out-of-tree modules 2006-06-28 18:29 ` Andrew Morton @ 2006-06-28 18:44 ` Jeremy Fitzhardinge 2006-07-01 9:47 ` Sam Ravnborg 0 siblings, 1 reply; 4+ messages in thread From: Jeremy Fitzhardinge @ 2006-06-28 18:44 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, Ram Pai, Sam Ravnborg Andrew Morton wrote: > On Wed, 28 Jun 2006 09:51:11 -0700 > Jeremy Fitzhardinge <jeremy@goop.org> wrote: > >> I haven't really looked at yet, but I was hoping someone had already >> tracked it down. >> > > Not that I'm aware of. OK, it wasn't really a bug; I had an old Modules.symvers lying around the madwifi tree from a previous build against an earlier kernel. But modpost seems all pretty fragile... J ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 2.6.17-mm3: segvs in modpost with out-of-tree modules 2006-06-28 18:44 ` Jeremy Fitzhardinge @ 2006-07-01 9:47 ` Sam Ravnborg 0 siblings, 0 replies; 4+ messages in thread From: Sam Ravnborg @ 2006-07-01 9:47 UTC (permalink / raw) To: Jeremy Fitzhardinge; +Cc: Andrew Morton, linux-kernel, Ram Pai On Wed, Jun 28, 2006 at 11:44:20AM -0700, Jeremy Fitzhardinge wrote: > Andrew Morton wrote: > >On Wed, 28 Jun 2006 09:51:11 -0700 > >Jeremy Fitzhardinge <jeremy@goop.org> wrote: > > > >>I haven't really looked at yet, but I was hoping someone had already > >>tracked it down. > >> > > > >Not that I'm aware of. > > OK, it wasn't really a bug; I had an old Modules.symvers lying around > the madwifi tree from a previous build against an earlier kernel. But > modpost seems all pretty fragile... I have pushed following patch that fixes the SEGV. We shoul not SEGV no matter the input. Sam diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index d03c9ff..37e34d6 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -205,6 +205,8 @@ static const char *export_str(enum expor static enum export export_no(const char * s) { int i; + if (!s) + return export_unknown; for (i = 0; export_list[i].export != export_unknown; i++) { if (strcmp(export_list[i].str, s) == 0) return export_list[i].export; @@ -1265,7 +1267,7 @@ static void write_if_changed(struct buff } /* parse Module.symvers file. line format: - * 0x12345678<tab>symbol<tab>module[<tab>export] + * 0x12345678<tab>symbol<tab>module[[<tab>export]<tab>something] **/ static void read_dump(const char *fname, unsigned int kernel) { @@ -1278,7 +1280,7 @@ static void read_dump(const char *fname, return; while ((line = get_next_line(&pos, file, size))) { - char *symname, *modname, *d, *export; + char *symname, *modname, *d, *export, *end; unsigned int crc; struct module *mod; struct symbol *s; @@ -1291,7 +1293,8 @@ static void read_dump(const char *fname, *modname++ = '\0'; if ((export = strchr(modname, '\t')) != NULL) *export++ = '\0'; - + if (export && ((end = strchr(export, '\t')) != NULL)) + *end = '\0'; crc = strtoul(line, &d, 16); if (*symname == '\0' || *modname == '\0' || *d != '\0') goto fail; ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-07-01 9:47 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-06-28 16:51 2.6.17-mm3: segvs in modpost with out-of-tree modules Jeremy Fitzhardinge 2006-06-28 18:29 ` Andrew Morton 2006-06-28 18:44 ` Jeremy Fitzhardinge 2006-07-01 9:47 ` Sam Ravnborg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox