From 1a7370ba33c6fe7bc708d8e9421dcb1e60bbbd64 Mon Sep 17 00:00:00 2001 From: marco Date: Tue, 25 Oct 2011 08:22:39 -0500 Subject: fix segfault in config file parsing found by Ingo Feinerer --- xxxterm.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/xxxterm.c b/xxxterm.c index 02b5d66..3717543 100644 --- a/xxxterm.c +++ b/xxxterm.c @@ -2284,17 +2284,20 @@ config_parse(char *filename, int runtime) if ((var = strsep(&cp, WS)) == NULL || cp == NULL) startpage_add("invalid configuration file entry: %s", line); + else { + cp += (long)strspn(cp, WS); - cp += (long)strspn(cp, WS); - - if ((val = strsep(&cp, "\0")) == NULL) - break; + if ((val = strsep(&cp, "\0")) == NULL) + break; - DNPRINTF(XT_D_CONFIG, "config_parse: %s=%s\n", var, val); - handled = settings_add(var, val); - if (handled == 0) - startpage_add("invalid configuration file entry: %s=%s", + DNPRINTF(XT_D_CONFIG, "config_parse: %s=%s\n", var, val); + handled = settings_add(var, val); + + if (handled == 0) + startpage_add("invalid configuration file entry" + ": %s=%s", var, val); + } free(line); } -- cgit 1.4.1-2-gfad0