From 884f0aff0e94ee35d7dd3c6dd55041d4872a9a9b Mon Sep 17 00:00:00 2001 From: Ole Troan Date: Fri, 14 Dec 2018 20:34:29 +0100 Subject: String type: Fix off by one error String is not sent nul terminated across API. The hardest two problems in computer science is cache invalidation naming and off by one errors. Change-Id: I36f1952ca955cb2d9dfb4c8120ec48c50ba17991 Signed-off-by: Ole Troan --- src/vlibapi/api_types.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/vlibapi/api_types.h') diff --git a/src/vlibapi/api_types.h b/src/vlibapi/api_types.h index 759298e735d..ffcd24d12b2 100644 --- a/src/vlibapi/api_types.h +++ b/src/vlibapi/api_types.h @@ -32,13 +32,12 @@ typedef struct static inline int vl_api_to_api_string (u32 len, const char *buf, vl_api_string_t * str) { - if (strncpy_s ((char *) str->buf, len, buf, len - 1) != 0) - len = 0; + clib_memcpy(str->buf, buf, len); str->length = clib_host_to_net_u32 (len); return len + sizeof (u32); } -/* Return a C string from API string */ +/* Return a pointer to the API string (not nul terminated */ static inline u8 * vl_api_from_api_string (vl_api_string_t * astr) { -- cgit 1.2.3-korg