map: fix memory leak 36/34536/5
authorBenoît Ganne <bganne@cisco.com>
Wed, 17 Nov 2021 08:16:09 +0000 (09:16 +0100)
committerMatthew Smith <mgsmith@netgate.com>
Fri, 11 Mar 2022 21:46:00 +0000 (21:46 +0000)
Thanks to Ben McKeegan <ben@netservers.co.uk> for the report.

Type: fix

Change-Id: I8170dda572c326b6b1823fd330dbd5e961fdad74
Signed-off-by: Benoît Ganne <bganne@cisco.com>
src/plugins/map/ip4_map.c

index 1ab5cc2..710bd10 100644 (file)
@@ -155,6 +155,7 @@ ip4_map (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame)
   map_main_t *mm = &map_main;
   vlib_combined_counter_main_t *cm = mm->domain_counters;
   u32 thread_index = vm->thread_index;
+  u32 *buffer0 = 0;
 
   while (n_left_from > 0)
     {
@@ -170,7 +171,6 @@ ip4_map (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame)
          ip6_header_t *ip6h0;
          u32 next0 = IP4_MAP_NEXT_IP6_LOOKUP;
          u32 map_domain_index0 = ~0;
-         u32 *buffer0 = 0;
          bool free_original_buffer0 = false;
          u32 *frag_from0, frag_left0;
 
@@ -322,6 +322,7 @@ ip4_map (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame)
       vlib_put_next_frame (vm, node, next_index, n_left_to_next);
     }
 
+  vec_free (buffer0);
   return frame->n_vectors;
 }