diff options
Diffstat (limited to 'src/vnet')
-rw-r--r-- | src/vnet/dhcp/dhcp6_client_common_dp.c | 4 | ||||
-rw-r--r-- | src/vnet/dhcp/dhcp6_ia_na_client_dp.c | 1 | ||||
-rw-r--r-- | src/vnet/dhcp/dhcp6_pd_client_dp.c | 1 |
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; |