diff --git a/dp-core/vr_flow.c b/dp-core/vr_flow.c index c26bd0ce1..da8849be7 100644 --- a/dp-core/vr_flow.c +++ b/dp-core/vr_flow.c @@ -1237,11 +1237,11 @@ vr_flow_flush(void *arg) router = flmd->flmd_router; if (!router) - return; + goto exit_flush; fe = vr_get_flow_entry(router, flmd->flmd_index); if (!fe) - return; + goto exit_flush; vr_init_forwarding_md(&fmd); vr_flow_set_forwarding_md(router, fe, flmd->flmd_index, &fmd); @@ -1252,6 +1252,9 @@ vr_flow_flush(void *arg) vr_reset_flow_entry(router, fe, flmd->flmd_index); } +exit_flush: + vr_free(flmd); + return; }