diff options
author | Neale Ranns <neale.ranns@cisco.com> | 2017-01-16 18:09:40 +0100 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-01-17 00:26:26 +0000 |
commit | 3bd11d786e2cdbc4d7f23ebde12e1691713bdf7a (patch) | |
tree | e9681741a3f5c1bb6822650eaf302fac70cfa931 /src/vnet/dhcpv6/proxy_node.c | |
parent | a9a951f8e5ed6e172fbfbdbb6cb690c67fa2f715 (diff) |
DHCPv6 Proxy; fix crash when DHCPv6 prxy is not configured and client packet is received
Change-Id: I0250acdee803545b8923549e2099863a95544691
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Diffstat (limited to 'src/vnet/dhcpv6/proxy_node.c')
-rw-r--r-- | src/vnet/dhcpv6/proxy_node.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/vnet/dhcpv6/proxy_node.c b/src/vnet/dhcpv6/proxy_node.c index 40df35cd059..4dd2239ffaa 100644 --- a/src/vnet/dhcpv6/proxy_node.c +++ b/src/vnet/dhcpv6/proxy_node.c @@ -244,7 +244,11 @@ dhcpv6_proxy_to_server_input (vlib_main_t * vm, /* Send to DHCPV6 server via the configured FIB */ rx_sw_if_index = sw_if_index = vnet_buffer(b0)->sw_if_index[VLIB_RX]; rx_fib_idx = im->fib_index_by_sw_if_index [rx_sw_if_index]; - server_idx = dpm->dhcp6_server_index_by_rx_fib_index[rx_fib_idx]; + + if (vec_len(dpm->dhcp6_server_index_by_rx_fib_index) <= rx_fib_idx) + goto no_server; + + server_idx = dpm->dhcp6_server_index_by_rx_fib_index[rx_fib_idx]; if (PREDICT_FALSE (pool_is_free_index (dpm->dhcp6_servers, server_idx))) |