]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: log: fix possible segfault during config parsing
authorWilly Tarreau <w@1wt.eu>
Thu, 20 Dec 2012 17:19:26 +0000 (18:19 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 20 Dec 2012 17:21:01 +0000 (18:21 +0100)
When log format arguments are specified within braces with no '+' nor '-'
prefix, the NULL string is compared with known keywords causing a crash.
This only happens during parsing so it does not affect runtime processing.

src/log.c

index 7483842c480745ccfc56fa443193e0b5a0f1b2fa..e5d4ce8d3bbc34054768f2541023a01752d525fb 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -184,7 +184,7 @@ int parse_logformat_var_args(char *args, struct logformat_node *node)
 
                if (*args == '\0' || *args == ',') {
                        *args = '\0';
-                       for (i = 0; var_args_list[i].name; i++) {
+                       for (i = 0; sp && var_args_list[i].name; i++) {
                                if (strcmp(sp, var_args_list[i].name) == 0) {
                                        if (flags == 1) {
                                                node->options |= var_args_list[i].mask;
@@ -199,7 +199,7 @@ int parse_logformat_var_args(char *args, struct logformat_node *node)
                        if (end)
                                break;
                }
-       args++;
+               args++;
        }
        return 0;
 }