From 8bea589cfe0fca1a6f560e16ca66a4cf199041a2 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Mon, 4 Apr 2022 22:40:45 +0200 Subject: vppinfra: make _vec_len() read-only Use of _vec_len() to set vector length breaks address sanitizer. Users should use vec_set_len(), vec_inc_len(), vec_dec_len () instead. Type: improvement Change-Id: I441ae948771eb21c23a61f3ff9163bdad74a2cb8 Signed-off-by: Damjan Marion --- src/vlib/main.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/vlib/main.c') diff --git a/src/vlib/main.c b/src/vlib/main.c index fd0c1fc5f7c..a9efe7e936d 100644 --- a/src/vlib/main.c +++ b/src/vlib/main.c @@ -81,7 +81,7 @@ vlib_frame_alloc_to_node (vlib_main_t * vm, u32 to_node_index, { /* Allocate from end of free list. */ f = fs->free_frames[l - 1]; - _vec_len (fs->free_frames) = l - 1; + vec_set_len (fs->free_frames, l - 1); } else { @@ -1458,7 +1458,7 @@ vlib_main_or_worker_loop (vlib_main_t * vm, int is_main) if (is_main) { vec_resize (nm->pending_frames, 32); - _vec_len (nm->pending_frames) = 0; + vec_set_len (nm->pending_frames, 0); } /* Mark time of main loop start. */ @@ -1584,7 +1584,7 @@ vlib_main_or_worker_loop (vlib_main_t * vm, int is_main) for (i = 0; i < _vec_len (nm->pending_frames); i++) cpu_time_now = dispatch_pending_node (vm, i, cpu_time_now); /* Reset pending vector for next iteration. */ - _vec_len (nm->pending_frames) = 0; + vec_set_len (nm->pending_frames, 0); if (is_main) { @@ -1670,7 +1670,7 @@ vlib_main_or_worker_loop (vlib_main_t * vm, int is_main) dispatch_suspended_process (vm, di, cpu_time_now); } } - _vec_len (nm->data_from_advancing_timing_wheel) = 0; + vec_set_len (nm->data_from_advancing_timing_wheel, 0); } } vlib_increment_main_loop_counter (vm); @@ -1946,7 +1946,7 @@ vlib_main (vlib_main_t * volatile vm, unformat_input_t * input) CLIB_CACHE_LINE_BYTES); vec_validate (nm->data_from_advancing_timing_wheel, 10); - _vec_len (nm->data_from_advancing_timing_wheel) = 0; + vec_set_len (nm->data_from_advancing_timing_wheel, 0); /* Create the process timing wheel */ TW (tw_timer_wheel_init) ((TWT (tw_timer_wheel) *) nm->timing_wheel, @@ -1955,9 +1955,9 @@ vlib_main (vlib_main_t * volatile vm, unformat_input_t * input) ~0 /* max expirations per call */ ); vec_validate (vm->pending_rpc_requests, 0); - _vec_len (vm->pending_rpc_requests) = 0; + vec_set_len (vm->pending_rpc_requests, 0); vec_validate (vm->processing_rpc_requests, 0); - _vec_len (vm->processing_rpc_requests) = 0; + vec_set_len (vm->processing_rpc_requests, 0); /* Default params for the buffer allocator fault injector, if configured */ if (VLIB_BUFFER_ALLOC_FAULT_INJECTOR > 0) -- cgit 1.2.3-korg