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/vppinfra/macros.c | |
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/vppinfra/macros.c')
-rw-r--r-- | src/vppinfra/macros.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/vppinfra/macros.c b/src/vppinfra/macros.c index b8a8e1744aa..27a92a8abe2 100644 --- a/src/vppinfra/macros.c +++ b/src/vppinfra/macros.c @@ -175,7 +175,7 @@ clib_macro_eval (clib_macro_main_t * mm, i8 * s, i32 complain, u16 level, /* add results to answer */ vec_append (rv, ts); /* Remove NULL termination or the results are sad */ - _vec_len (rv) = vec_len (rv) - 1; + vec_set_len (rv, vec_len (rv) - 1); vec_free (ts); } else @@ -183,8 +183,7 @@ clib_macro_eval (clib_macro_main_t * mm, i8 * s, i32 complain, u16 level, if (complain) clib_warning ("Undefined Variable Reference: %s\n", varname); vec_append (rv, format (0, "UNSET ")); - _vec_len (rv) = vec_len (rv) - 1; - + vec_set_len (rv, vec_len (rv) - 1); } vec_free (varname); } |