From 8bea589cfe0fca1a6f560e16ca66a4cf199041a2 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Mon, 4 Apr 2022 22:40:45 +0200 Subject: 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 --- src/vppinfra/macros.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/vppinfra/macros.c') 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); } -- cgit 1.2.3-korg