acl vnet vlib: memory leaks 79/20079/5
authorSteven Luong <[email protected]>
Wed, 12 Jun 2019 05:44:20 +0000 (22:44 -0700)
committerSteven Luong <[email protected]>
Fri, 14 Jun 2019 23:01:42 +0000 (16:01 -0700)
Fix memory leaks in acl, vnet, and vlib components.

Type: fix

Change-Id: I61c84ebbacbbf3215db0d4aaa7699e8d5f8df2da
Signed-off-by: Steven Luong <[email protected]>
src/plugins/acl/sess_mgmt_node.c
src/vlib/error.c
src/vnet/interface.c

index 7da6da4..4070e52 100644 (file)
@@ -727,6 +727,7 @@ acl_fa_session_cleaner_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
                }
              else
                {
+                 clib_bitmap_free (pw0->pending_clear_sw_if_index_bitmap);
                  if (clear_all)
                    {
                      /* if we need to clear all, then just clear the interfaces that we are servicing */
index 691e639..ca5b87c 100644 (file)
@@ -219,18 +219,19 @@ vlib_register_errors (vlib_main_t * vm,
   /* (re)register the em->counters base address, switch back to main heap */
   vlib_stats_pop_heap2 (em->counters, vm->thread_index, oldheap);
 
-  {
-    elog_event_type_t t;
-    uword i;
+  if (VLIB_ELOG_MAIN_LOOP > 0)
+    {
+      elog_event_type_t t;
+      uword i;
 
-    clib_memset (&t, 0, sizeof (t));
-    for (i = 0; i < n_errors; i++)
-      {
-       t.format = (char *) format (0, "%v %s: %%d",
-                                   n->name, error_strings[i]);
-       vm->error_elog_event_types[n->error_heap_index + i] = t;
-      }
-  }
+      clib_memset (&t, 0, sizeof (t));
+      for (i = 0; i < n_errors; i++)
+       {
+         t.format = (char *) format (0, "%v %s: %%d",
+                                     n->name, error_strings[i]);
+         vm->error_elog_event_types[n->error_heap_index + i] = t;
+       }
+    }
 }
 
 static clib_error_t *
index 37f27ea..77ee691 100644 (file)
@@ -1010,6 +1010,7 @@ vnet_delete_hw_interface (vnet_main_t * vnm, u32 hw_if_index)
   vec_free (hw->name);
   vec_free (hw->hw_address);
   vec_free (hw->input_node_thread_index_by_queue);
+  vec_free (hw->rx_mode_by_queue);
   vec_free (hw->dq_runtime_index_by_queue);
 
   pool_put (im->hw_interfaces, hw);