From f07fb71b6276429bd81b5ae3669c8f33d38df1fa Mon Sep 17 00:00:00 2001 From: Filip Tehlar Date: Tue, 20 Sep 2016 12:37:09 +0200 Subject: [PATCH] VPP-189: fix coverity issue in api_format.c Change-Id: Ib16fd69abe93c1afb2ee1d38144763f57888585c Signed-off-by: Filip Tehlar --- vpp-api-test/vat/api_format.c | 8 +++++++- vpp/vpp-api/api.c | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/vpp-api-test/vat/api_format.c b/vpp-api-test/vat/api_format.c index 1fbe9244909..7b5b4341e86 100644 --- a/vpp-api-test/vat/api_format.c +++ b/vpp-api-test/vat/api_format.c @@ -12963,6 +12963,12 @@ api_lisp_locator_dump (vat_main_t * vam) return -99; } + if (vec_len (ls_name) > 63) + { + errmsg ("error: locator set name too long!"); + return -99; + } + if (!vam->json_output) { fformat (vam->ofp, "%=16s%=16s%=16s\n", "locator", "priority", @@ -12977,7 +12983,7 @@ api_lisp_locator_dump (vat_main_t * vam) else { vec_add1 (ls_name, 0); - strcpy ((char *) mp->ls_name, (char *) ls_name); + strncpy ((char *) mp->ls_name, (char *) ls_name, sizeof (mp->ls_name)); } /* send it... */ diff --git a/vpp/vpp-api/api.c b/vpp/vpp-api/api.c index 62dd000f5f9..663096062ef 100644 --- a/vpp/vpp-api/api.c +++ b/vpp/vpp-api/api.c @@ -5716,6 +5716,8 @@ vl_api_lisp_locator_dump_t_handler (vl_api_lisp_locator_dump_t * mp) ls_index = htonl (mp->ls_index); else { + /* make sure we get a proper C-string */ + mp->ls_name[sizeof (mp->ls_name) - 1] = 0; ls_name = format (0, "%s", mp->ls_name); p = hash_get_mem (lcm->locator_set_index_by_name, ls_name); if (!p) -- 2.16.6