mirror of https://github.com/OISF/suricata
Flow: fix flow reference cnt issues
FlowReference stores the flow in the destination pointer and increases the flow reference counter (use_cnt). This should only be called once per destination pointer. The reference counter is decremented when FlowDereference is called. Multiple FlowReference calls would lead to multiple use_cnt bumps, while there would be only one FlowRereference. This lead to a use_cnt that would never become 0, meaning the flow would stay in the hash for the entire lifetime of the process. The fix here is to check if the destination pointer is already set to the flow. If so, we don't increase the reference counter. As this is really a bug, this condition will lead to a BUG_ON if the DEBUG_VALIDATION checking is enabled.pull/836/merge
parent
fdca557e01
commit
85760a7044
Loading…
Reference in New Issue