mirror of
https://github.com/zeek/zeek.git
synced 2025-10-09 18:18:19 +00:00
Merge remote-tracking branch 'origin/topic/robin/gh-467-addto'
- In this merge commit: fixed parentheses/typo that breaks compilation * origin/topic/robin/gh-467-addto: Catch if &add_func/&delete_func is applied to IDs that don't have values.
This commit is contained in:
commit
3fc86a39b8
5 changed files with 32 additions and 1 deletions
7
CHANGES
7
CHANGES
|
@ -1,3 +1,10 @@
|
|||
|
||||
3.3.0-dev.113 | 2020-08-18 12:10:26 -0700
|
||||
|
||||
* GH-467: Catch use of &add_func/&delete_func on IDs without values. (Robin Sommer, Corelight)
|
||||
|
||||
* Fix compiler warning from missing namepsace qualification (Tim Wojtulewicz, Corelight)
|
||||
|
||||
3.3.0-dev.109 | 2020-08-14 10:00:07 -0700
|
||||
|
||||
* GH-178: Add new string bif methods based on python string utilities (Tim Wojtulewicz, Corelight)
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
3.3.0-dev.109
|
||||
3.3.0-dev.113
|
||||
|
|
|
@ -220,6 +220,13 @@ void ID::SetVal(ExprPtr ev, InitClass c)
|
|||
if ( ! a )
|
||||
Internal("no add/delete function in ID::SetVal");
|
||||
|
||||
if ( ! val )
|
||||
{
|
||||
Error(fmt("%s initializer applied to ID without value",
|
||||
c == INIT_EXTRA ? "+=" : "-="), this);
|
||||
return;
|
||||
}
|
||||
|
||||
EvalFunc(a->GetExpr(), std::move(ev));
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
error in /Users/robin/bro/master/testing/btest/.tmp/language.global-unset-addto/global-unset-addto.zeek, line 4: += initializer applied to ID without value (a)
|
||||
error in /Users/robin/bro/master/testing/btest/.tmp/language.global-unset-addto/global-unset-addto.zeek, line 5: -= initializer applied to ID without value (b)
|
15
testing/btest/language/global-unset-addto.zeek
Normal file
15
testing/btest/language/global-unset-addto.zeek
Normal file
|
@ -0,0 +1,15 @@
|
|||
# @TEST-EXEC-FAIL: zeek -b %INPUT >output 2>&1
|
||||
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff output
|
||||
|
||||
global a: count &add_func = function(old: count, new: count): count { return 3; };
|
||||
global b: count &delete_func = function(old: count, new: count): count { return 3; };
|
||||
|
||||
redef a += 13;
|
||||
redef b -= 13;
|
||||
|
||||
# The following is ok.
|
||||
global c: count &redef &add_func = function(old: count, new: count): count { return 3; };
|
||||
redef c = 0;
|
||||
redef c += 13;
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue