BUG/MINOR: acl: warn if "_sub" derivative used with an explicit match

Recently, a new warning is displayed when an ACL derivative match method
is override with another '-m' method. This is implemented via the
following patch :

  6ea50ba462692d6dcf301081f23cab3e0f6086e4
  MINOR: acl; Warn when matching method based on a suffix is overwritten

However, this warning was not reported when "_sub" suffix was specified.
Fix this by adding PAT_MATCH_SUB in the warning comparison.

No backport needed except if above commit is.
This commit is contained in:
Amaury Denoyelle 2025-10-28 11:23:18 +01:00
parent 89b43740e3
commit 7f2ae10920

View File

@ -411,8 +411,9 @@ struct acl_expr *parse_acl_expr(const char **args, char **err, struct arg_list *
if (aclkw) {
if (((aclkw->match_type == PAT_MATCH_BEG || aclkw->match_type == PAT_MATCH_DIR || aclkw->match_type == PAT_MATCH_DOM ||
aclkw->match_type == PAT_MATCH_DOM || aclkw->match_type == PAT_MATCH_END || aclkw->match_type == PAT_MATCH_LEN ||
aclkw->match_type == PAT_MATCH_REG) && expr->pat.match != pat_match_fcts[aclkw->match_type]) ||
aclkw->match_type == PAT_MATCH_DOM || aclkw->match_type == PAT_MATCH_END || aclkw->match_type == PAT_MATCH_LEN ||
aclkw->match_type == PAT_MATCH_REG || aclkw->match_type == PAT_MATCH_SUB) &&
expr->pat.match != pat_match_fcts[aclkw->match_type]) ||
(aclkw->match && expr->pat.match != aclkw->match))
ha_warning("parsing [%s:%d] : original matching method '%s' was overwritten and will not be applied as expected.\n",
file, line, aclkw->kw);