mirror of
https://github.com/zeek/zeek.git
synced 2025-10-03 15:18:20 +00:00
Fixing another memory leak.
This is the ConnVal leak that Gilbert also saw.
This commit is contained in:
parent
d3e764155e
commit
eb0580c622
5 changed files with 13 additions and 6 deletions
|
@ -348,19 +348,18 @@ RecordVal* Connection::BuildConnVal()
|
||||||
id_val->Assign(2, new AddrVal(resp_addr));
|
id_val->Assign(2, new AddrVal(resp_addr));
|
||||||
id_val->Assign(3, new PortVal(ntohs(resp_port), prot_type));
|
id_val->Assign(3, new PortVal(ntohs(resp_port), prot_type));
|
||||||
|
|
||||||
conn_val->Assign(0, id_val);
|
|
||||||
|
|
||||||
RecordVal *orig_endp = new RecordVal(endpoint);
|
RecordVal *orig_endp = new RecordVal(endpoint);
|
||||||
orig_endp->Assign(0, new Val(0, TYPE_COUNT));
|
orig_endp->Assign(0, new Val(0, TYPE_COUNT));
|
||||||
orig_endp->Assign(1, new Val(0, TYPE_COUNT));
|
orig_endp->Assign(1, new Val(0, TYPE_COUNT));
|
||||||
conn_val->Assign(1, orig_endp);
|
|
||||||
|
|
||||||
RecordVal *resp_endp = new RecordVal(endpoint);
|
RecordVal *resp_endp = new RecordVal(endpoint);
|
||||||
resp_endp->Assign(0, new Val(0, TYPE_COUNT));
|
resp_endp->Assign(0, new Val(0, TYPE_COUNT));
|
||||||
resp_endp->Assign(1, new Val(0, TYPE_COUNT));
|
resp_endp->Assign(1, new Val(0, TYPE_COUNT));
|
||||||
conn_val->Assign(2, resp_endp);
|
|
||||||
|
|
||||||
// conn_val->Assign(3, new Val(start_time, TYPE_TIME)); // ###
|
conn_val->Assign(0, id_val);
|
||||||
|
conn_val->Assign(1, orig_endp);
|
||||||
|
conn_val->Assign(2, resp_endp);
|
||||||
|
// 3 and 4 are set below.
|
||||||
conn_val->Assign(5, new TableVal(string_set)); // service
|
conn_val->Assign(5, new TableVal(string_set)); // service
|
||||||
conn_val->Assign(6, new StringVal("")); // addl
|
conn_val->Assign(6, new StringVal("")); // addl
|
||||||
conn_val->Assign(7, new Val(0, TYPE_COUNT)); // hot
|
conn_val->Assign(7, new Val(0, TYPE_COUNT)); // hot
|
||||||
|
|
|
@ -3469,6 +3469,7 @@ Val* SetConstructorExpr::Eval(Frame* f) const
|
||||||
{
|
{
|
||||||
Val* element = exprs[i]->Eval(f);
|
Val* element = exprs[i]->Eval(f);
|
||||||
aggr->Assign(element, 0);
|
aggr->Assign(element, 0);
|
||||||
|
Unref(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
return aggr;
|
return aggr;
|
||||||
|
|
|
@ -385,6 +385,8 @@ LogMgr::Filter::~Filter()
|
||||||
for ( int i = 0; i < num_fields; ++i )
|
for ( int i = 0; i < num_fields; ++i )
|
||||||
delete fields[i];
|
delete fields[i];
|
||||||
|
|
||||||
|
free(fields);
|
||||||
|
|
||||||
Unref(path_val);
|
Unref(path_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -364,7 +364,7 @@ char* uitoa_n(uint64 value, char* str, int n, int base, const char* prefix)
|
||||||
i += strlen(prefix);
|
i += strlen(prefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( i >= n )
|
if ( i >= n - 1 )
|
||||||
return str;
|
return str;
|
||||||
|
|
||||||
v = value;
|
v = value;
|
||||||
|
|
5
testing/btest/core/leaks.bro
Normal file
5
testing/btest/core/leaks.bro
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Needs perftools support.
|
||||||
|
#
|
||||||
|
# @TEST-REQUIRES: bro --help 2>&1 | grep -q mem-leaks
|
||||||
|
#
|
||||||
|
# @TEST-EXEC: HEAP_CHECK_DUMP_DIRECTORY=. HEAPCHECK=local bro -m -r $TRACES/wikipedia.trace test-all
|
Loading…
Add table
Add a link
Reference in a new issue