diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2007-09-19 21:23:09 +0200 |
---|---|---|
committer | Sam Ravnborg <sam@neptun.(none)> | 2007-10-12 21:15:32 +0200 |
commit | a67cb1319f53fa68012a23d6ca45279c6bc627f8 (patch) | |
tree | 36a9ca55dd8180ca3583d4dbd22ed8c72fb1f04a /scripts/kconfig/util.c | |
parent | 48874077ddd6c0c444758059af2cf77c10204ece (diff) | |
download | lwn-a67cb1319f53fa68012a23d6ca45279c6bc627f8.tar.gz lwn-a67cb1319f53fa68012a23d6ca45279c6bc627f8.zip |
kconfig: fix segv fault in menuconfig
With specific configurations requesting help for certain
menu lines caused menuconfig to crash.
This was tracked down to a null pointer bug.
Thanks to "Miles Lane" <miles.lane@gmail.com> for inital reporting
and to Gabriel C <nix.or.die@googlemail.com> for the backtrace
that helped me locating the bug.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts/kconfig/util.c')
-rw-r--r-- | scripts/kconfig/util.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c index e3f28b9d59f4..e1cad924c0a4 100644 --- a/scripts/kconfig/util.c +++ b/scripts/kconfig/util.c @@ -84,12 +84,15 @@ void str_free(struct gstr *gs) /* Append to growable string */ void str_append(struct gstr *gs, const char *s) { - size_t l = strlen(gs->s) + strlen(s) + 1; - if (l > gs->len) { - gs->s = realloc(gs->s, l); - gs->len = l; + size_t l; + if (s) { + l = strlen(gs->s) + strlen(s) + 1; + if (l > gs->len) { + gs->s = realloc(gs->s, l); + gs->len = l; + } + strcat(gs->s, s); } - strcat(gs->s, s); } /* Append printf formatted string to growable string */ |