From bfa25441e74e931e6f582b3e578faa9cec0fe3a8 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 6 Mar 2013 12:40:48 +0100 Subject: [PATCH] Handle a non-impossible empty argv in loadServerConfigFromString(). Usually this does not happens since we trim for " \t\r\n", but if there are other chars that return true with isspace(), we may end with an empty argv. Better to handle the condition in an explicit way. --- src/config.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/config.c b/src/config.c index 521e60b1..fc660ed5 100644 --- a/src/config.c +++ b/src/config.c @@ -68,7 +68,7 @@ void loadServerConfigFromString(char *config) { linenum = i+1; lines[i] = sdstrim(lines[i]," \t\r\n"); - /* Skip comments and blank lines*/ + /* Skip comments and blank lines */ if (lines[i][0] == '#' || lines[i][0] == '\0') continue; /* Split into arguments */ @@ -77,6 +77,12 @@ void loadServerConfigFromString(char *config) { err = "Unbalanced quotes in configuration line"; goto loaderr; } + + /* Skip this line if the resulting command vector is empty. */ + if (argc == 0) { + sdsfreesplitres(argv,argc); + return; + } sdstolower(argv[0]); /* Execute config directives */