diff options
author | Damjan Marion <damarion@cisco.com> | 2022-04-04 22:40:45 +0200 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2022-04-04 23:17:13 +0000 |
commit | 8bea589cfe0fca1a6f560e16ca66a4cf199041a2 (patch) | |
tree | cf2767f8f5f31344468b65e14baa3f1a4c85fb91 /src/plugins/dns | |
parent | a2b358b1faf6e762e1d29a931d83c7735ac9a77d (diff) |
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 <damarion@cisco.com>
Diffstat (limited to 'src/plugins/dns')
-rw-r--r-- | src/plugins/dns/dns.c | 8 | ||||
-rw-r--r-- | src/plugins/dns/request_node.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/plugins/dns/dns.c b/src/plugins/dns/dns.c index 76ce3dabd30..ac6d1229441 100644 --- a/src/plugins/dns/dns.c +++ b/src/plugins/dns/dns.c @@ -829,7 +829,7 @@ re_resolve: clib_memset (ep, 0, sizeof (*ep)); ep->name = format (0, "%s%c", name, 0); - _vec_len (ep->name) = vec_len (ep->name) - 1; + vec_set_len (ep->name, vec_len (ep->name) - 1); hash_set_mem (dm->cache_entry_by_name, ep->name, ep - dm->entries); @@ -988,7 +988,7 @@ found_last_request: cname = vnet_dns_labels_to_name (rr->rdata, reply, &pos2); /* Save the cname */ vec_add1 (cname, 0); - _vec_len (cname) -= 1; + vec_dec_len (cname, 1); ep = pool_elt_at_index (dm->entries, ep_index); ep->cname = cname; ep->flags |= (DNS_CACHE_ENTRY_FLAG_CNAME | DNS_CACHE_ENTRY_FLAG_VALID); @@ -1007,7 +1007,7 @@ found_last_request: clib_memset (next_ep, 0, sizeof (*next_ep)); next_ep->name = vec_dup (cname); vec_add1 (next_ep->name, 0); - _vec_len (next_ep->name) -= 1; + vec_dec_len (next_ep->name, 1); hash_set_mem (dm->cache_entry_by_name, next_ep->name, next_ep - dm->entries); @@ -2611,7 +2611,7 @@ test_dns_expire_command_fn (vlib_main_t * vm, if (unformat (input, "%v", &name)) { vec_add1 (name, 0); - _vec_len (name) -= 1; + vec_dec_len (name, 1); } else return clib_error_return (0, "no name provided"); diff --git a/src/plugins/dns/request_node.c b/src/plugins/dns/request_node.c index 72a76d12e4f..9179bf8dbdd 100644 --- a/src/plugins/dns/request_node.c +++ b/src/plugins/dns/request_node.c @@ -214,7 +214,7 @@ dns46_request_inline (vlib_main_t * vm, */ name0 = vnet_dns_labels_to_name (label0, (u8 *) d0, (u8 **) & q0); vec_add1 (name0, 0); - _vec_len (name0) -= 1; + vec_dec_len (name0, 1); t0->request_type = DNS_PEER_PENDING_NAME_TO_IP; |