summaryrefslogtreecommitdiffstats
path: root/src/vnet
diff options
context:
space:
mode:
authorBenoît Ganne <bganne@cisco.com>2020-04-16 12:40:54 +0200
committerAndrew Yourtchenko <ayourtch@gmail.com>2020-08-13 17:20:47 +0000
commit346e6e186ad2f24fcf07fa16c1a1f9468504afb5 (patch)
treecc19a32fc5248359c739a754c09fb2244ecf1f95 /src/vnet
parent8453fb7509b7fa43c8e94f8cf383c638d36dc0bf (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.c3
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);