flow: cleanup expectations first

Make sure to cleanup expectations for a flow as the first step, before
parts of the flow itself are getting cleaned/freed.

Also indicate use unlikely as flows with expectations should be relatively
rare.
pull/4778/head
Victor Julien 6 years ago
parent fcfeeeb694
commit 09a21545ce

@ -1046,6 +1046,10 @@ int FlowClearMemory(Flow* f, uint8_t proto_map)
{
SCEnter();
if (unlikely(f->flags & FLOW_HAS_EXPECTATION)) {
AppLayerExpectationClean(f);
}
/* call the protocol specific free function if we have one */
if (flow_freefuncs[proto_map].Freefunc != NULL) {
flow_freefuncs[proto_map].Freefunc(f->protoctx);
@ -1053,9 +1057,6 @@ int FlowClearMemory(Flow* f, uint8_t proto_map)
FlowFreeStorage(f);
if (f->flags & FLOW_HAS_EXPECTATION)
AppLayerExpectationClean(f);
FLOW_RECYCLE(f);
SCReturnInt(1);

Loading…
Cancel
Save