api: fix free socket process args
[vpp.git] / src / vlibmemory / vlib_api.c
index e1a6bd1..05652fa 100644 (file)
@@ -319,7 +319,7 @@ vl_api_clnt_process (vlib_main_t * vm, vlib_node_runtime_t * node,
        * of the application to process the request, the client will
        * sit and wait for Godot...
        */
-      vector_rate = vlib_last_vector_length_per_node (vm);
+      vector_rate = (f64) vlib_last_vectors_per_main_loop (vm);
       start_time = vlib_time_now (vm);
       while (1)
        {
@@ -388,6 +388,7 @@ vl_api_clnt_process (vlib_main_t * vm, vlib_node_runtime_t * node,
              a = pool_elt_at_index (socket_main.process_args, event_data[i]);
              vl_socket_process_api_msg (a->clib_file, a->regp,
                                         (i8 *) a->data);
+             a = pool_elt_at_index (socket_main.process_args, event_data[i]);
              vec_free (a->data);
              pool_put (socket_main.process_args, a);
            }