From ec2a9bbb89a4ec1ebf8982f1d611179cd84315b8 Mon Sep 17 00:00:00 2001 From: Lijian Zhang Date: Tue, 28 Aug 2018 10:18:24 +0800 Subject: [PATCH] Fix array bound failure in api_sr_localsid_add_del MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When compiling VPP with GCC-8.2.0, it gives below error messages. src/vat/api_format.c: In function ‘api_sr_localsid_add_del’: src/vat/api_format.c:10839:7: error: ‘memcpy’ forming offset [5, 16] is out of the bounds [0, 4] of object ‘nh_addr4’ with type ‘ip4_address_t’ {aka ‘union ’} [-Werror=array-bounds] clib_memcpy (mp->nh_addr6, &nh_addr4, sizeof (mp->nh_addr6)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/vat/api_format.c:10809:17: note: ‘nh_addr4’ declared here ip4_address_t nh_addr4; ^~~~~~~~ Change-Id: I9065a3407d53c1f91974b32381972c4edb45144c Signed-off-by: Lijian Zhang --- src/vat/api_format.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vat/api_format.c b/src/vat/api_format.c index 321127aa41d..43b7d5307cc 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -10836,8 +10836,8 @@ api_sr_localsid_add_del (vat_main_t * vam) clib_memcpy (mp->localsid.addr, &localsid, sizeof (mp->localsid)); if (nexthop_set) { - clib_memcpy (mp->nh_addr6, &nh_addr4, sizeof (mp->nh_addr6)); - clib_memcpy (mp->nh_addr4, &nh_addr6, sizeof (mp->nh_addr4)); + clib_memcpy (mp->nh_addr6, &nh_addr6, sizeof (mp->nh_addr6)); + clib_memcpy (mp->nh_addr4, &nh_addr4, sizeof (mp->nh_addr4)); } mp->behavior = behavior; mp->sw_if_index = ntohl (sw_if_index); -- 2.16.6