From: Timur Celik Date: Tue, 22 Nov 2022 16:03:14 +0000 (+0100) Subject: vpp-swan: Fix segfault for multiple addresses X-Git-Tag: v23.06-rc0~115 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=20721177ecff92edd7b0d0739ca5dc3121791f6f;p=vpp.git vpp-swan: Fix segfault for multiple addresses In order to loop over the list of `vl_api_ip_address_details_t`, increment the pointer by one instead of `i`. Type: fix Change-Id: I8554d1388d67bb95e029eddf444d383fb85ecac7 Signed-off-by: Timur Celik --- diff --git a/extras/strongswan/vpp_sswan/kernel_vpp_net.c b/extras/strongswan/vpp_sswan/kernel_vpp_net.c index 02f002a3183..a29a7c6a4da 100644 --- a/extras/strongswan/vpp_sswan/kernel_vpp_net.c +++ b/extras/strongswan/vpp_sswan/kernel_vpp_net.c @@ -563,8 +563,8 @@ update_addrs (private_kernel_vpp_net_t *this, iface_t *entry) tmp = (vl_api_ip_address_details_t *) out; for (i = 0; i < num; i++) { - tmp += i; rmp = tmp; + tmp += 1; host = host_create_from_chunk ( AF_INET, chunk_create (rmp->prefix.address.un.ip4, 4), 0); addrs->insert_last (addrs, host); @@ -582,8 +582,8 @@ update_addrs (private_kernel_vpp_net_t *this, iface_t *entry) tmp = (vl_api_ip_address_details_t *) out; for (i = 0; i < num; i++) { - tmp += i; rmp = tmp; + tmp += 1; host = host_create_from_chunk ( AF_INET6, chunk_create (rmp->prefix.address.un.ip6, 16), 0); addrs->insert_last (addrs, host);