From 56c76e5949373cc7abbac5c00de49320d9530010 Mon Sep 17 00:00:00 2001 From: Arne Welzel Date: Thu, 2 Mar 2023 18:45:14 +0100 Subject: [PATCH] ScriptValidation: Make break/next a warning until Zeek 6.1 The ja3 package uses next instead of return and triggers the new errors with Zeek 5.2. That seems somewhat bad. In case we want to do a 5.2.1 that makes this a warning, this would be change to do so. --- src/ScriptValidation.cc | 8 +++++--- .../Baseline/language.next-break-context-errors-2/.stderr | 2 +- .../Baseline/language.next-break-context-errors-3/.stderr | 2 +- .../Baseline/language.next-break-context-errors-4/.stderr | 2 +- .../Baseline/language.next-break-context-errors-5/.stderr | 2 +- .../Baseline/language.next-break-context-errors-6/.stderr | 2 +- .../Baseline/language.next-break-context-errors-7/.stderr | 2 +- .../Baseline/language.next-break-context-errors-8/.stderr | 2 +- .../Baseline/language.next-break-context-errors-9/.stderr | 6 +++--- .../Baseline/language.next-break-context-errors/.stderr | 2 +- testing/btest/language/next-break-context-errors.zeek | 2 +- 11 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/ScriptValidation.cc b/src/ScriptValidation.cc index 1555346985..a0e59b118b 100644 --- a/src/ScriptValidation.cc +++ b/src/ScriptValidation.cc @@ -22,15 +22,17 @@ public: if ( stmt->Tag() == STMT_BREAK && ! BreakStmtIsValid() ) { zeek::reporter->PushLocation(stmt->GetLocationInfo()); - zeek::reporter->Error("break statement used outside of for, while or " - "switch statement and not within a hook"); + zeek::reporter->Warning("break statement used outside of for, while or " + "switch statement and not within a hook. " + "With v6.1 this will become an error."); zeek::reporter->PopLocation(); } if ( stmt->Tag() == STMT_NEXT && ! NextStmtIsValid() ) { zeek::reporter->PushLocation(stmt->GetLocationInfo()); - zeek::reporter->Error("next statement used outside of for or while statement"); + zeek::reporter->Warning("next statement used outside of for or while statement. " + "With v6.1 this will become an error."); zeek::reporter->PopLocation(); } diff --git a/testing/btest/Baseline/language.next-break-context-errors-2/.stderr b/testing/btest/Baseline/language.next-break-context-errors-2/.stderr index 0ba4e18c15..c7cfd07cb0 100644 --- a/testing/btest/Baseline/language.next-break-context-errors-2/.stderr +++ b/testing/btest/Baseline/language.next-break-context-errors-2/.stderr @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/next-break-context-errors.zeek, line 3: break statement used outside of for, while or switch statement and not within a hook +warning in <...>/next-break-context-errors.zeek, line 3: break statement used outside of for, while or switch statement and not within a hook. With v6.1 this will become an error. diff --git a/testing/btest/Baseline/language.next-break-context-errors-3/.stderr b/testing/btest/Baseline/language.next-break-context-errors-3/.stderr index 1a80274fec..71b305068b 100644 --- a/testing/btest/Baseline/language.next-break-context-errors-3/.stderr +++ b/testing/btest/Baseline/language.next-break-context-errors-3/.stderr @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/next-break-context-errors.zeek, line 3: next statement used outside of for or while statement +warning in <...>/next-break-context-errors.zeek, line 3: next statement used outside of for or while statement. With v6.1 this will become an error. diff --git a/testing/btest/Baseline/language.next-break-context-errors-4/.stderr b/testing/btest/Baseline/language.next-break-context-errors-4/.stderr index 0ba4e18c15..c7cfd07cb0 100644 --- a/testing/btest/Baseline/language.next-break-context-errors-4/.stderr +++ b/testing/btest/Baseline/language.next-break-context-errors-4/.stderr @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/next-break-context-errors.zeek, line 3: break statement used outside of for, while or switch statement and not within a hook +warning in <...>/next-break-context-errors.zeek, line 3: break statement used outside of for, while or switch statement and not within a hook. With v6.1 this will become an error. diff --git a/testing/btest/Baseline/language.next-break-context-errors-5/.stderr b/testing/btest/Baseline/language.next-break-context-errors-5/.stderr index b6579d9546..bf2d6b9806 100644 --- a/testing/btest/Baseline/language.next-break-context-errors-5/.stderr +++ b/testing/btest/Baseline/language.next-break-context-errors-5/.stderr @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/next-break-context-errors.zeek, line 4: break statement used outside of for, while or switch statement and not within a hook +warning in <...>/next-break-context-errors.zeek, line 4: break statement used outside of for, while or switch statement and not within a hook. With v6.1 this will become an error. diff --git a/testing/btest/Baseline/language.next-break-context-errors-6/.stderr b/testing/btest/Baseline/language.next-break-context-errors-6/.stderr index 4525ed2cfd..496ca6d854 100644 --- a/testing/btest/Baseline/language.next-break-context-errors-6/.stderr +++ b/testing/btest/Baseline/language.next-break-context-errors-6/.stderr @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/next-break-context-errors.zeek, line 7: next statement used outside of for or while statement +warning in <...>/next-break-context-errors.zeek, line 7: next statement used outside of for or while statement. With v6.1 this will become an error. diff --git a/testing/btest/Baseline/language.next-break-context-errors-7/.stderr b/testing/btest/Baseline/language.next-break-context-errors-7/.stderr index 2029212d54..fd485b8587 100644 --- a/testing/btest/Baseline/language.next-break-context-errors-7/.stderr +++ b/testing/btest/Baseline/language.next-break-context-errors-7/.stderr @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/next-break-context-errors.zeek, line 5: next statement used outside of for or while statement +warning in <...>/next-break-context-errors.zeek, line 5: next statement used outside of for or while statement. With v6.1 this will become an error. diff --git a/testing/btest/Baseline/language.next-break-context-errors-8/.stderr b/testing/btest/Baseline/language.next-break-context-errors-8/.stderr index 626dedb520..5583094a27 100644 --- a/testing/btest/Baseline/language.next-break-context-errors-8/.stderr +++ b/testing/btest/Baseline/language.next-break-context-errors-8/.stderr @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/next-break-context-errors.zeek, line 6: next statement used outside of for or while statement +warning in <...>/next-break-context-errors.zeek, line 6: next statement used outside of for or while statement. With v6.1 this will become an error. diff --git a/testing/btest/Baseline/language.next-break-context-errors-9/.stderr b/testing/btest/Baseline/language.next-break-context-errors-9/.stderr index 768ecfd690..39fe9ba574 100644 --- a/testing/btest/Baseline/language.next-break-context-errors-9/.stderr +++ b/testing/btest/Baseline/language.next-break-context-errors-9/.stderr @@ -1,4 +1,4 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/next-break-context-errors.zeek, line 6: next statement used outside of for or while statement -error in <...>/next-break-context-errors.zeek, line 11: break statement used outside of for, while or switch statement and not within a hook -error in <...>/next-break-context-errors.zeek, line 16: next statement used outside of for or while statement +warning in <...>/next-break-context-errors.zeek, line 6: next statement used outside of for or while statement. With v6.1 this will become an error. +warning in <...>/next-break-context-errors.zeek, line 11: break statement used outside of for, while or switch statement and not within a hook. With v6.1 this will become an error. +warning in <...>/next-break-context-errors.zeek, line 16: next statement used outside of for or while statement. With v6.1 this will become an error. diff --git a/testing/btest/Baseline/language.next-break-context-errors/.stderr b/testing/btest/Baseline/language.next-break-context-errors/.stderr index 4525ed2cfd..496ca6d854 100644 --- a/testing/btest/Baseline/language.next-break-context-errors/.stderr +++ b/testing/btest/Baseline/language.next-break-context-errors/.stderr @@ -1,2 +1,2 @@ ### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. -error in <...>/next-break-context-errors.zeek, line 7: next statement used outside of for or while statement +warning in <...>/next-break-context-errors.zeek, line 7: next statement used outside of for or while statement. With v6.1 this will become an error. diff --git a/testing/btest/language/next-break-context-errors.zeek b/testing/btest/language/next-break-context-errors.zeek index 122f96d2d6..5c5d52d060 100644 --- a/testing/btest/language/next-break-context-errors.zeek +++ b/testing/btest/language/next-break-context-errors.zeek @@ -1,6 +1,6 @@ # @TEST-DOC: Check break and next usage within for, while, switch and hooks. -# @TEST-EXEC-FAIL: zeek -b %INPUT +# @TEST-EXEC: zeek -b %INPUT # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff .stderr function f() {