summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2007-02-26 19:46:52 +0100
committerSam Ravnborg <sam@ravnborg.org>2007-05-02 20:58:07 +0200
commita61b2dfd1823506dbf1f9b046e0b09237ec1b985 (patch)
tree9d006090a43cc97a6d3edbaadde2c8f7ae5c5035
parent9bf8cb9b7908383752b1842eae78269f7e16d9fb (diff)
downloadlinux-a61b2dfd1823506dbf1f9b046e0b09237ec1b985.tar.gz
linux-a61b2dfd1823506dbf1f9b046e0b09237ec1b985.tar.bz2
linux-a61b2dfd1823506dbf1f9b046e0b09237ec1b985.zip
kbuild: fix segmentation fault in modpost
If modpost was called manually with filenames without '/' then modpost would segfault. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-rw-r--r--scripts/mod/modpost.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index e1f2b31cf34b..281abb77e033 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1345,6 +1345,7 @@ static void add_depends(struct buffer *b, struct module *mod,
buf_printf(b, "__attribute__((section(\".modinfo\"))) =\n");
buf_printf(b, "\"depends=");
for (s = mod->unres; s; s = s->next) {
+ const char *p;
if (!s->module)
continue;
@@ -1352,8 +1353,11 @@ static void add_depends(struct buffer *b, struct module *mod,
continue;
s->module->seen = 1;
- buf_printf(b, "%s%s", first ? "" : ",",
- strrchr(s->module->name, '/') + 1);
+ if ((p = strrchr(s->module->name, '/')) != NULL)
+ p++;
+ else
+ p = s->module->name;
+ buf_printf(b, "%s%s", first ? "" : ",", p);
first = 0;
}
buf_printf(b, "\";\n");