From: Christopher Faulet Date: Tue, 28 Jul 2020 09:30:19 +0000 (+0200) Subject: MINOR: tcp-rules: Return an internal error if an action yields on a final eval X-Git-Tag: v2.3-dev2~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=99aaca99b59dd229220f2f3c2112e4790e95d5d2;p=thirdparty%2Fhaproxy.git MINOR: tcp-rules: Return an internal error if an action yields on a final eval On a final evaluation of a tcp-request or tcp-response content ruleset, it is forbidden for an action to yield. To quickly identify bugs an internal error is now returned if it happens and a warning log message is emitted. --- diff --git a/src/tcp_rules.c b/src/tcp_rules.c index e09cc3c10a..984aa501d3 100644 --- a/src/tcp_rules.c +++ b/src/tcp_rules.c @@ -161,6 +161,12 @@ resume_execution: goto end; case ACT_RET_YIELD: s->current_rule = rule; + if (partial & SMP_OPT_FINAL) { + send_log(s->be, LOG_WARNING, + "Internal error: yield not allowed if the inspect-delay expired " + "for the tcp-request content actions."); + goto internal; + } goto missing_data; case ACT_RET_DENY: goto deny; @@ -313,6 +319,12 @@ resume_execution: goto end; case ACT_RET_YIELD: s->current_rule = rule; + if (partial & SMP_OPT_FINAL) { + send_log(s->be, LOG_WARNING, + "Internal error: yield not allowed if the inspect-delay expired " + "for the tcp-response content actions."); + goto internal; + } goto missing_data; case ACT_RET_DENY: goto deny;