diff options
author | 2020-04-16 12:40:54 +0200 | |
---|---|---|
committer | 2020-08-13 17:20:47 +0000 | |
commit | 346e6e186ad2f24fcf07fa16c1a1f9468504afb5 (patch) | |
tree | cc19a32fc5248359c739a754c09fb2244ecf1f95 /src/vnet | |
parent | 8453fb7509b7fa43c8e94f8cf383c638d36dc0bf (diff) |
bier: fix vector size confusing ASan
The vector is initialized to 1024 entries which is guaranteed to be
enough, but as its size can shrink between calls, make sure ASan is
aware of the expected size before using it.
Type: fix
Change-Id: I4bcc39867a886b3cb463854d2cda0b32155650e9
Signed-off-by: Benoît Ganne <bganne@cisco.com>
(cherry picked from commit 77100efb37f7cb333f9ab55dc206bf1431e3ae50)
Diffstat (limited to 'src/vnet')
-rw-r--r-- | src/vnet/bier/bier_lookup.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vnet/bier/bier_lookup.c b/src/vnet/bier/bier_lookup.c index 9361845c992..f7a21a1c744 100644 --- a/src/vnet/bier/bier_lookup.c +++ b/src/vnet/bier/bier_lookup.c @@ -219,15 +219,16 @@ bier_lookup (vlib_main_t * vm, if (PREDICT_TRUE(0 != n_clones)) { + vec_set_len(blm->blm_clones[thread_index], n_clones); num_cloned = vlib_buffer_clone(vm, bi0, blm->blm_clones[thread_index], n_clones, VLIB_BUFFER_CLONE_HEAD_SIZE); - vec_set_len(blm->blm_clones[thread_index], num_cloned); if (num_cloned != n_clones) { + vec_set_len(blm->blm_clones[thread_index], num_cloned); vlib_node_increment_counter (vm, node->node_index, BIER_LOOKUP_ERROR_BUFFER_ALLOCATION_FAILURE, 1); |