]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: stick-table: Use MAX_SESS_STKCTR as the max track ID during parsing
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 18 Dec 2019 09:25:46 +0000 (10:25 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 20 Jan 2020 14:18:45 +0000 (15:18 +0100)
During the parsing of the sc-inc-gpc0, sc-inc-gpc1 and sc-inc-gpt1 actions, the
maximum stick table track ID allowed is tested against ACT_ACTION_TRK_SCMAX. It
is the action number and not the maximum number of stick counters. Instead,
MAX_SESS_STKCTR must be used.

This patch must be backported to all stable versions.

src/stick_table.c

index 1b70b468ecb0acef476d774167fdef52884e1dcc..7b648475b080d56ec4d5030fe3a4b6e152ed3d72 100644 (file)
@@ -1916,9 +1916,9 @@ static enum act_parse_ret parse_inc_gpc0(const char **args, int *arg, struct pro
                        return ACT_RET_PRS_ERR;
                }
 
-               if (rule->arg.gpc.sc >= ACT_ACTION_TRK_SCMAX) {
+               if (rule->arg.gpc.sc >= MAX_SESS_STKCTR) {
                        memprintf(err, "invalid stick table track ID. The max allowed ID is %d",
-                                 ACT_ACTION_TRK_SCMAX-1);
+                                 MAX_SESS_STKCTR-1);
                        return ACT_RET_PRS_ERR;
                }
        }
@@ -1998,9 +1998,9 @@ static enum act_parse_ret parse_inc_gpc1(const char **args, int *arg, struct pro
                        return ACT_RET_PRS_ERR;
                }
 
-               if (rule->arg.gpc.sc >= ACT_ACTION_TRK_SCMAX) {
+               if (rule->arg.gpc.sc >= MAX_SESS_STKCTR) {
                        memprintf(err, "invalid stick table track ID. The max allowed ID is %d",
-                                 ACT_ACTION_TRK_SCMAX-1);
+                                 MAX_SESS_STKCTR-1);
                        return ACT_RET_PRS_ERR;
                }
        }
@@ -2107,9 +2107,9 @@ static enum act_parse_ret parse_set_gpt0(const char **args, int *arg, struct pro
                        return ACT_RET_PRS_ERR;
                }
 
-               if (rule->arg.gpt.sc >= ACT_ACTION_TRK_SCMAX) {
+               if (rule->arg.gpt.sc >= MAX_SESS_STKCTR) {
                        memprintf(err, "invalid stick table track ID '%s'. The max allowed ID is %d",
-                                 args[*arg-1], ACT_ACTION_TRK_SCMAX-1);
+                                 args[*arg-1], MAX_SESS_STKCTR-1);
                        return ACT_RET_PRS_ERR;
                }
        }