summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vnet/dhcp/dhcp6_client_common_dp.c4
-rw-r--r--src/vnet/dhcp/dhcp6_ia_na_client_dp.c1
-rw-r--r--src/vnet/dhcp/dhcp6_pd_client_dp.c1
3 files changed, 6 insertions, 0 deletions
diff --git a/src/vnet/dhcp/dhcp6_client_common_dp.c b/src/vnet/dhcp/dhcp6_client_common_dp.c
index 216bf5fa0e4..1a3c7bcb278 100644
--- a/src/vnet/dhcp/dhcp6_client_common_dp.c
+++ b/src/vnet/dhcp/dhcp6_client_common_dp.c
@@ -395,6 +395,8 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
r.n_addresses = vec_len (addresses);
r.addresses = addresses;
dhcp6_publish_report (&r);
+ /* We just gave addresses to another process! */
+ addresses = 0;
}
else
{
@@ -403,6 +405,8 @@ dhcpv6_client_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
r.n_prefixes = vec_len (prefixes);
r.prefixes = prefixes;
dhcp6_pd_publish_report (&r);
+ /* We just gave prefixes to another process! */
+ prefixes = 0;
}
}
vec_free (addresses);
diff --git a/src/vnet/dhcp/dhcp6_ia_na_client_dp.c b/src/vnet/dhcp/dhcp6_ia_na_client_dp.c
index d5bd648502e..60641227700 100644
--- a/src/vnet/dhcp/dhcp6_ia_na_client_dp.c
+++ b/src/vnet/dhcp/dhcp6_ia_na_client_dp.c
@@ -540,6 +540,7 @@ dhcp6_reply_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
address->preferred_time = htonl (info->preferred_time);
address++;
}
+ vec_free (events[i].addresses);
dhcp6_ia_na_client_public_main_t *dcpm =
&dhcp6_ia_na_client_public_main;
diff --git a/src/vnet/dhcp/dhcp6_pd_client_dp.c b/src/vnet/dhcp/dhcp6_pd_client_dp.c
index 93311210944..009de4a4431 100644
--- a/src/vnet/dhcp/dhcp6_pd_client_dp.c
+++ b/src/vnet/dhcp/dhcp6_pd_client_dp.c
@@ -548,6 +548,7 @@ dhcp6_pd_reply_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
prefix->preferred_time = htonl (info->preferred_time);
prefix++;
}
+ vec_free (events[i].prefixes);
dhcp6_pd_client_public_main_t *dpcpm =
&dhcp6_pd_client_public_main;