Merge remote-tracking branch 'origin/topic/timw/3456-when-unknown-capture'

* origin/topic/timw/3456-when-unknown-capture:
  Check for valid identifier in WhenStmt::Describe
This commit is contained in:
Tim Wojtulewicz 2024-04-22 15:15:55 -07:00
commit 5aa18287f1
5 changed files with 36 additions and 2 deletions

12
CHANGES
View file

@ -1,3 +1,15 @@
7.0.0-dev.143 | 2024-04-22 15:15:55 -0700
* Check for valid identifier in WhenStmt::Describe (Tim Wojtulewicz, Corelight)
* Bump zeek-aux submodule to pull in zeek-archiver addition (Christian Kreibich, Corelight)
* Remove zeek-archiver from build config, deprecate --disable-archiver in configure (Christian Kreibich, Corelight)
* Drop zeek-archiver submodule (Christian Kreibich, Corelight)
zeek-archiver now lives in the zeek-aux submodule.
7.0.0-dev.136 | 2024-04-18 09:02:14 -0700
* Update core.pcap.filter-warning baseline (Peter Cullen, Corelight)

View file

@ -1 +1 @@
7.0.0-dev.136
7.0.0-dev.143

View file

@ -2029,7 +2029,10 @@ void WhenStmt::StmtDescribe(ODesc* d) const {
if ( c.IsDeepCopy() )
d->Add("copy ");
d->Add(c.Id()->Name());
if ( c.Id() )
d->Add(c.Id()->Name());
else
d->Add("<error>");
}
d->Add("]");
}

View file

@ -0,0 +1,2 @@
error in /Users/tim/Desktop/projects/zeek-master/testing/btest/.tmp/language.when-local-function-capture-error/when-local-function-capture-error.zeek, line 9: no such local identifier: z
error in /Users/tim/Desktop/projects/zeek-master/testing/btest/.tmp/language.when-local-function-capture-error/when-local-function-capture-error.zeek, lines 12-16: y is used inside "when" statement but not captured (when [x, <error>](T == T) { print hmm?, x, y} timeout 100.0 msecs { print timeout})

View file

@ -0,0 +1,17 @@
# @TEST-DOC: Tests that a capture in a function that doesn't exist doesn't crash
# @TEST-EXEC-FAIL: zeek -b %INPUT >out 2>&1
# @TeST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out
function f() {
local x = 1;
local y = 2;
when [x, z] ( T == T )
{
print "hmm?", x, y;
}
timeout 100msec
{
print "timeout";
}
}