aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBenoît Ganne <bganne@cisco.com>2020-04-16 12:40:54 +0200
committerNeale Ranns <nranns@cisco.com>2020-04-16 17:16:11 +0000
commit77100efb37f7cb333f9ab55dc206bf1431e3ae50 (patch)
tree64f912a3705923a0138a016978ac35164d90d160 /src
parentbd7f3422bbe38ba87888b765e94b56bfcbb9602c (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>
Diffstat (limited to 'src')
-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);