diff options
author | Benoît Ganne <bganne@cisco.com> | 2020-04-16 12:40:54 +0200 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2020-04-16 17:16:11 +0000 |
commit | 77100efb37f7cb333f9ab55dc206bf1431e3ae50 (patch) | |
tree | 64f912a3705923a0138a016978ac35164d90d160 /src/vnet/bier/bier_lookup.c | |
parent | bd7f3422bbe38ba87888b765e94b56bfcbb9602c (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/vnet/bier/bier_lookup.c')
-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); |