mirror of
https://github.com/zeek/zeek.git
synced 2025-10-06 16:48:19 +00:00
Merge remote-tracking branch 'origin/topic/vern/vector-hole-loops'
* origin/topic/vern/vector-hole-loops: fix for looping over vectors with holes per https://github.com/zeek/zeek/issues/1763 btest for https://github.com/zeek/zeek/issues/1763
This commit is contained in:
commit
8414d13030
5 changed files with 39 additions and 1 deletions
6
CHANGES
6
CHANGES
|
@ -1,3 +1,9 @@
|
|||
4.2.0-dev.157 | 2021-09-08 12:04:45 -0700
|
||||
|
||||
* fix for looping over vectors with holes per https://github.com/zeek/zeek/issues/1763 (Vern Paxson, Corelight)
|
||||
|
||||
* btest for https://github.com/zeek/zeek/issues/1763 (Vern Paxson, Corelight)
|
||||
|
||||
4.2.0-dev.154 | 2021-09-08 12:03:51 -0700
|
||||
|
||||
* Fix mis-usage of string::append that leads to an overflow (Tim Wojtulewicz, Corelight)
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
4.2.0-dev.154
|
||||
4.2.0-dev.157
|
||||
|
|
|
@ -1349,9 +1349,13 @@ ValPtr ForStmt::DoExec(Frame* f, Val* v, StmtFlowType& flow)
|
|||
else if ( v->GetType()->Tag() == TYPE_VECTOR )
|
||||
{
|
||||
VectorVal* vv = v->AsVectorVal();
|
||||
const auto& raw_vv = *vv->RawVec();
|
||||
|
||||
for ( auto i = 0u; i < vv->Size(); ++i )
|
||||
{
|
||||
if ( ! raw_vv[i] )
|
||||
continue;
|
||||
|
||||
// Set the loop variable to the current index, and make
|
||||
// another pass over the loop body.
|
||||
f->SetElement((*loop_vars)[0], val_mgr->Count(i));
|
||||
|
|
8
testing/btest/Baseline/language.vector-hole-loop/out
Normal file
8
testing/btest/Baseline/language.vector-hole-loop/out
Normal file
|
@ -0,0 +1,8 @@
|
|||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||
[, foo, bar, , baz]
|
||||
1
|
||||
2
|
||||
4
|
||||
foo
|
||||
bar
|
||||
baz
|
20
testing/btest/language/vector-hole-loop.zeek
Normal file
20
testing/btest/language/vector-hole-loop.zeek
Normal file
|
@ -0,0 +1,20 @@
|
|||
# @TEST-EXEC: zeek -b %INPUT >out
|
||||
# @TEST-EXEC: btest-diff out
|
||||
|
||||
event zeek_init()
|
||||
{
|
||||
local v: vector of string;
|
||||
|
||||
v[1] = "foo";
|
||||
v[2] = "bar";
|
||||
v[4] = "baz";
|
||||
|
||||
print v;
|
||||
|
||||
for ( idx in v )
|
||||
print idx;
|
||||
|
||||
for ( idx in v )
|
||||
print v[idx];
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue