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
|
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)
|
* 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 )
|
else if ( v->GetType()->Tag() == TYPE_VECTOR )
|
||||||
{
|
{
|
||||||
VectorVal* vv = v->AsVectorVal();
|
VectorVal* vv = v->AsVectorVal();
|
||||||
|
const auto& raw_vv = *vv->RawVec();
|
||||||
|
|
||||||
for ( auto i = 0u; i < vv->Size(); ++i )
|
for ( auto i = 0u; i < vv->Size(); ++i )
|
||||||
{
|
{
|
||||||
|
if ( ! raw_vv[i] )
|
||||||
|
continue;
|
||||||
|
|
||||||
// Set the loop variable to the current index, and make
|
// Set the loop variable to the current index, and make
|
||||||
// another pass over the loop body.
|
// another pass over the loop body.
|
||||||
f->SetElement((*loop_vars)[0], val_mgr->Count(i));
|
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