diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2007-02-26 19:46:52 +0100 |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2007-05-02 20:58:07 +0200 |
commit | a61b2dfd1823506dbf1f9b046e0b09237ec1b985 (patch) | |
tree | 9d006090a43cc97a6d3edbaadde2c8f7ae5c5035 | |
parent | 9bf8cb9b7908383752b1842eae78269f7e16d9fb (diff) | |
download | linux-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.c | 8 |
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"); |