summaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/util.c
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2007-09-19 21:23:09 +0200
committerSam Ravnborg <sam@neptun.(none)>2007-10-12 21:15:32 +0200
commita67cb1319f53fa68012a23d6ca45279c6bc627f8 (patch)
tree36a9ca55dd8180ca3583d4dbd22ed8c72fb1f04a /scripts/kconfig/util.c
parentkconfig: make comments stand out in menuconfig (diff)
downloadlinux-a67cb1319f53fa68012a23d6ca45279c6bc627f8.tar.xz
linux-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.c13
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 */