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 <anonymous>’} [-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 <Lijian.Zhang@arm.com>
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);