mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Merge remote-tracking branch 'origin/topic/timw/1740-table-key-error'
* origin/topic/timw/1740-table-key-error: GH-1741: Print error if calling a non-hook with hook keyword GH-1740: Report a better error message if table key is not a list
This commit is contained in:
commit
7a6a81c200
6 changed files with 31 additions and 11 deletions
6
CHANGES
6
CHANGES
|
@ -1,3 +1,9 @@
|
||||||
|
4.2.0-dev.432 | 2021-12-10 09:28:23 -0700
|
||||||
|
|
||||||
|
* GH-1741: Print error if calling a non-hook with hook keyword (Tim Wojtulewicz, Corelight)
|
||||||
|
|
||||||
|
* GH-1740: Report a better error message if table key is not a list (Tim Wojtulewicz, Corelight)
|
||||||
|
|
||||||
4.2.0-dev.428 | 2021-12-09 14:58:53 -0700
|
4.2.0-dev.428 | 2021-12-09 14:58:53 -0700
|
||||||
|
|
||||||
* GH-1125: Support GRE ARUBA headers (Tim Wojtulewicz, Corelight)
|
* GH-1125: Support GRE ARUBA headers (Tim Wojtulewicz, Corelight)
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
4.2.0-dev.428
|
4.2.0-dev.432
|
||||||
|
|
|
@ -2626,7 +2626,7 @@ TypePtr AssignExpr::InitType() const
|
||||||
{
|
{
|
||||||
if ( op1->Tag() != EXPR_LIST )
|
if ( op1->Tag() != EXPR_LIST )
|
||||||
{
|
{
|
||||||
Error("bad initializer");
|
Error("bad initializer, first operand should be a list");
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3490,7 +3490,10 @@ TableConstructorExpr::TableConstructorExpr(ListExprPtr constructor_list,
|
||||||
SetType(init_type(op.get()));
|
SetType(init_type(op.get()));
|
||||||
|
|
||||||
if ( ! type )
|
if ( ! type )
|
||||||
|
{
|
||||||
SetError();
|
SetError();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
else if ( type->Tag() != TYPE_TABLE || type->AsTableType()->IsSet() )
|
else if ( type->Tag() != TYPE_TABLE || type->AsTableType()->IsSet() )
|
||||||
SetError("values in table(...) constructor do not specify a table");
|
SetError("values in table(...) constructor do not specify a table");
|
||||||
|
|
|
@ -721,8 +721,12 @@ expr:
|
||||||
{
|
{
|
||||||
--in_hook;
|
--in_hook;
|
||||||
set_location(@1, @3);
|
set_location(@1, @3);
|
||||||
|
|
||||||
if ( $3->Tag() != EXPR_CALL )
|
if ( $3->Tag() != EXPR_CALL )
|
||||||
$3->Error("not a valid hook call expression");
|
$3->Error("not a valid hook call expression");
|
||||||
|
else if ( $3->AsCallExpr()->Func()->GetType()->AsFuncType()->Flavor() != FUNC_FLAVOR_HOOK )
|
||||||
|
$3->Error("hook keyword should only be used to call hooks");
|
||||||
|
|
||||||
$$ = $3;
|
$$ = $3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error in ./invalid.zeek, line 9: hook cannot be called directly, use hook operator (myhook)
|
error in ./invalid.zeek, line 14: hook cannot be called directly, use hook operator (myhook)
|
||||||
error in ./invalid.zeek, line 10: hook cannot be called directly, use hook operator (myhook)
|
error in ./invalid.zeek, line 15: hook cannot be called directly, use hook operator (myhook)
|
||||||
error in ./invalid.zeek, line 11: hook cannot be called directly, use hook operator (myhook)
|
error in ./invalid.zeek, line 16: hook cannot be called directly, use hook operator (myhook)
|
||||||
error in ./invalid.zeek, line 12: not a valid hook call expression (2 + 2)
|
error in ./invalid.zeek, line 17: not a valid hook call expression (2 + 2)
|
||||||
warning in ./invalid.zeek, line 12: expression value ignored (2 + 2)
|
warning in ./invalid.zeek, line 17: expression value ignored (2 + 2)
|
||||||
error in ./invalid.zeek, line 13: not a valid hook call expression (2 + 2)
|
error in ./invalid.zeek, line 18: not a valid hook call expression (2 + 2)
|
||||||
error in ./invalid.zeek, line 15: hook cannot be called directly, use hook operator (h)
|
error in ./invalid.zeek, line 20: hook cannot be called directly, use hook operator (h)
|
||||||
error in ./invalid.zeek, line 16: hook cannot be called directly, use hook operator (h)
|
error in ./invalid.zeek, line 21: hook cannot be called directly, use hook operator (h)
|
||||||
|
error in ./invalid.zeek, line 24: hook keyword should only be used to call hooks (foo())
|
||||||
|
|
|
@ -15,7 +15,7 @@ hook myhook(i: count)
|
||||||
hook myhook(i: count) &priority=-1
|
hook myhook(i: count) &priority=-1
|
||||||
{
|
{
|
||||||
print "other myhook()", i;
|
print "other myhook()", i;
|
||||||
}
|
}
|
||||||
|
|
||||||
function indirect(): hook(i: count)
|
function indirect(): hook(i: count)
|
||||||
{
|
{
|
||||||
|
@ -66,6 +66,11 @@ hook myhook(i: count)
|
||||||
if ( i == 0 ) break;
|
if ( i == 0 ) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function foo()
|
||||||
|
{
|
||||||
|
print "foo()";
|
||||||
|
}
|
||||||
|
|
||||||
event zeek_init()
|
event zeek_init()
|
||||||
{
|
{
|
||||||
myhook(3);
|
myhook(3);
|
||||||
|
@ -78,5 +83,6 @@ event zeek_init()
|
||||||
if ( h(3) )
|
if ( h(3) )
|
||||||
print "hmm";
|
print "hmm";
|
||||||
print "done";
|
print "done";
|
||||||
|
hook foo();
|
||||||
}
|
}
|
||||||
@TEST-END-FILE
|
@TEST-END-FILE
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue