GH-162: fix segfault when &expire_func is missing a return value

Fixes GH-162
This commit is contained in:
Jon Siwek 2019-01-14 14:18:46 -06:00
parent cada0d5e6e
commit 399660c9eb
3 changed files with 12 additions and 5 deletions

View file

@ -1,4 +1,8 @@
2.6-68 | 2019-01-14 14:18:46 -0600
* GH-162: fix segfault when &expire_func is missing a return value (Jon Siwek, Corelight)
2.6-67 | 2019-01-14 14:01:00 -0600 2.6-67 | 2019-01-14 14:01:00 -0600
* GH-161: fix segfault in &default type checking for sets (Jon Siwek, Corelight) * GH-161: fix segfault in &default type checking for sets (Jon Siwek, Corelight)

View file

@ -1 +1 @@
2.6-67 2.6-68

View file

@ -2466,7 +2466,7 @@ double TableVal::CallExpireFunc(Val* idx)
vl->append(idx); vl->append(idx);
double secs; double secs = 0;
try try
{ {
@ -2488,16 +2488,19 @@ double TableVal::CallExpireFunc(Val* idx)
} }
Val* vs = vf->AsFunc()->Call(vl); Val* vs = vf->AsFunc()->Call(vl);
secs = vs->AsInterval();
if ( vs )
{
secs = vs->AsInterval();
Unref(vs);
}
Unref(vf); Unref(vf);
Unref(vs);
delete vl; delete vl;
} }
catch ( InterpreterException& e ) catch ( InterpreterException& e )
{ {
secs = 0;
} }
return secs; return secs;