]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[MINOR] config: off-by-one in "stick-table" after list of converters
authorWilly Tarreau <w@1wt.eu>
Tue, 26 Jan 2010 17:36:26 +0000 (18:36 +0100)
committerWilly Tarreau <w@1wt.eu>
Tue, 26 Jan 2010 17:36:26 +0000 (18:36 +0100)
src/cfgparse.c

index 242ef82831b2f1e231880c67902ad004c64cbdb6..84b99fe26cdea2779e9b9235e69b802262a80608 100644 (file)
@@ -2132,6 +2132,7 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
                                        err_code |= ERR_ALERT | ERR_FATAL;
                                        goto out;
                                }
+                               myidx++;
                        }
                        else if (strcmp(args[myidx], "expire") == 0) {
                                myidx++;
@@ -2149,9 +2150,11 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
                                        goto out;
                                }
                                curproxy->table.expire = val;
+                               myidx++;
                        }
                        else if (strcmp(args[myidx], "nopurge") == 0) {
                                curproxy->table.nopurge = 1;
+                               myidx++;
                        }
                        else if (strcmp(args[myidx], "type") == 0) {
                                myidx++;
@@ -2161,8 +2164,14 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
                                        err_code |= ERR_ALERT | ERR_FATAL;
                                        goto out;
                                }
+                               /* myidx already points to next arg */
+                       }
+                       else {
+                               Alert("parsing [%s:%d] : stick-table: unknown argument '%s'.\n",
+                                     file, linenum, args[myidx]);
+                               err_code |= ERR_ALERT | ERR_FATAL;
+                               goto out;
                        }
-                       myidx++;
                }
 
                if (!curproxy->table.size) {