From c98bea11f1d8df3b09b2b0d0bc883a9b1169f927 Mon Sep 17 00:00:00 2001 From: Peter Skvarka Date: Tue, 13 Oct 2020 11:01:15 +0200 Subject: [PATCH] vnet: Memory leak, unreleased frame Type: fix --- src/vnet/ipfix-export/flow_report.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/vnet/ipfix-export/flow_report.c b/src/vnet/ipfix-export/flow_report.c index 56a2d16b8d53..3347a86d0808 100644 --- a/src/vnet/ipfix-export/flow_report.c +++ b/src/vnet/ipfix-export/flow_report.c @@ -301,12 +301,13 @@ flow_report_process (vlib_main_t * vm, if (rv < 0) continue; - nf = vlib_get_frame_to_node (vm, ip4_lookup_node_index); - nf->n_vectors = 0; - to_next = vlib_frame_vector_args (nf); + nf = NULL; if (template_bi != ~0) { + nf = vlib_get_frame_to_node (vm, ip4_lookup_node_index); + nf->n_vectors = 0; + to_next = vlib_frame_vector_args (nf); to_next[0] = template_bi; to_next++; nf->n_vectors++; @@ -314,7 +315,8 @@ flow_report_process (vlib_main_t * vm, nf = fr->flow_data_callback (frm, fr, nf, to_next, ip4_lookup_node_index); - if (nf) + + if (nf && nf->n_vectors) vlib_put_frame_to_node (vm, ip4_lookup_node_index, nf); } }