mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Merge remote-tracking branch 'origin/topic/vern/add-del-void-exprs'
* origin/topic/vern/add-del-void-exprs: crash fixes for constructs that expect add/delete expressions to return values
This commit is contained in:
commit
a739d47835
6 changed files with 27 additions and 6 deletions
4
CHANGES
4
CHANGES
|
@ -1,3 +1,7 @@
|
||||||
|
8.0.0-dev.639 | 2025-07-11 12:58:06 -0400
|
||||||
|
|
||||||
|
* crash fixes for constructs that expect add/delete expressions to return values (Vern Paxson, Corelight)
|
||||||
|
|
||||||
8.0.0-dev.636 | 2025-07-10 15:42:52 -0700
|
8.0.0-dev.636 | 2025-07-10 15:42:52 -0700
|
||||||
|
|
||||||
* Reduce some false-positive warnings from GCC to warnings with -Werror (Tim Wojtulewicz, Corelight)
|
* Reduce some false-positive warnings from GCC to warnings with -Werror (Tim Wojtulewicz, Corelight)
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
8.0.0-dev.636
|
8.0.0-dev.639
|
||||||
|
|
|
@ -220,9 +220,9 @@ bool Expr::CanAdd() const { return false; }
|
||||||
|
|
||||||
bool Expr::CanDel() const { return false; }
|
bool Expr::CanDel() const { return false; }
|
||||||
|
|
||||||
TypePtr Expr::AddType() const { return nullptr; }
|
TypePtr Expr::AddType() const { return base_type(TYPE_VOID); }
|
||||||
|
|
||||||
TypePtr Expr::DelType() const { return nullptr; }
|
TypePtr Expr::DelType() const { return base_type(TYPE_VOID); }
|
||||||
|
|
||||||
ValPtr Expr::Add(Frame* /* f */) { Internal("Expr::Add called"); }
|
ValPtr Expr::Add(Frame* /* f */) { Internal("Expr::Add called"); }
|
||||||
|
|
||||||
|
|
|
@ -730,9 +730,10 @@ ExprPtr AddExpr::BuildSub(const ExprPtr& op1, const ExprPtr& op2) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ExprPtr AggrAddDelExpr::Reduce(Reducer* c, StmtPtr& red_stmt) {
|
ExprPtr AggrAddDelExpr::Reduce(Reducer* c, StmtPtr& red_stmt) {
|
||||||
if ( type )
|
// In the future, if we use add/delete for list operations or such,
|
||||||
return UnaryExpr::Reduce(c, red_stmt);
|
// then the following becomes germane.
|
||||||
|
// if ( type )
|
||||||
|
// return UnaryExpr::Reduce(c, red_stmt);
|
||||||
if ( c->Optimizing() )
|
if ( c->Optimizing() )
|
||||||
op = c->UpdateExpr(op);
|
op = c->UpdateExpr(op);
|
||||||
|
|
||||||
|
|
3
testing/btest/Baseline/language.add-del-expr-void/out
Normal file
3
testing/btest/Baseline/language.add-del-expr-void/out
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
|
error in <...>/add-del-expr-void.zeek, line 10: can't assign void value (my_any1 = add my_set[3])
|
||||||
|
error in <...>/add-del-expr-void.zeek, line 11: can't assign void value (my_any2 = delete my_set[5])
|
13
testing/btest/language/add-del-expr-void.zeek
Normal file
13
testing/btest/language/add-del-expr-void.zeek
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# @TEST-DOC: checks for type-checking for add/delete expressions
|
||||||
|
#
|
||||||
|
# @TEST-EXEC-FAIL: zeek -b %INPUT >out 2>&1
|
||||||
|
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out
|
||||||
|
|
||||||
|
global my_set: set[count];
|
||||||
|
|
||||||
|
event zeek_init()
|
||||||
|
{
|
||||||
|
local my_any1: any = add my_set[3];
|
||||||
|
local my_any2: any = delete my_set[5];
|
||||||
|
print my_any1, my_any2;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue