From 283cd2e9afcab1407d5614d79da4354790fa059a Mon Sep 17 00:00:00 2001 From: Ole Troan Date: Wed, 12 Jun 2019 14:28:14 +0200 Subject: api: string type to convert to vector Previous use of strndup() required user to remember to call free(). Now return a vector pointing directly to the API message string. Of course user must remember to copy the string out if lifetime is longer than API message lifetime. Change-Id: Ib5e2b3d52d258e1a42ea9ea9a9e04abbe360e2bf Type: fix Signed-off-by: Ole Troan --- src/vat/api_format.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'src/vat') diff --git a/src/vat/api_format.c b/src/vat/api_format.c index 60d66be368d..5eb44c99b5d 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -58,6 +58,7 @@ #include "vat/json_format.h" #include #include +#include #include #include @@ -1299,30 +1300,31 @@ static void vl_api_show_version_reply_t_handler if (retval >= 0) { - char *s; + u8 *s = 0; char *p = (char *) &mp->program; - s = vl_api_from_api_string_c ((vl_api_string_t *) p); - errmsg (" program: %s\n", s); - free (s); + s = vl_api_from_api_to_vec ((vl_api_string_t *) p); + errmsg (" program: %v\n", s); + vec_free (s); p += vl_api_string_len ((vl_api_string_t *) p) + sizeof (vl_api_string_t); - s = vl_api_from_api_string_c ((vl_api_string_t *) p); - errmsg (" version: %s\n", s); - free (s); + s = vl_api_from_api_to_vec ((vl_api_string_t *) p); + errmsg (" version: %v\n", s); + vec_free (s); p += vl_api_string_len ((vl_api_string_t *) p) + sizeof (vl_api_string_t); - s = vl_api_from_api_string_c ((vl_api_string_t *) p); - errmsg (" build date: %s\n", s); - free (s); + s = vl_api_from_api_to_vec ((vl_api_string_t *) p); + errmsg (" build date: %v\n", s); + vec_free (s); p += vl_api_string_len ((vl_api_string_t *) p) + sizeof (vl_api_string_t); - s = vl_api_from_api_string_c ((vl_api_string_t *) p); - errmsg ("build directory: %s\n", s); - free (s); + s = vl_api_from_api_to_vec ((vl_api_string_t *) p); + vec_free (s); + + errmsg ("build directory: %v\n", s); } vam->retval = retval; vam->result_ready = 1; -- cgit 1.2.3-korg