From cda4c88de76fb37105d6bcb7115f5f6fcd107b9b Mon Sep 17 00:00:00 2001 From: Steve Shin Date: Wed, 25 Oct 2017 11:16:45 -0700 Subject: lldp: protection code to check a valid interface index When lldp interface is set, it's better to check valid interface index. Change-Id: I0db0ab6483ad73d28c69893576aa9b719c3b087c Signed-off-by: Steve Shin --- src/vnet/lldp/lldp_cli.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/vnet/lldp/lldp_cli.c') diff --git a/src/vnet/lldp/lldp_cli.c b/src/vnet/lldp/lldp_cli.c index ddedd137bed..239a7abe082 100644 --- a/src/vnet/lldp/lldp_cli.c +++ b/src/vnet/lldp/lldp_cli.c @@ -49,9 +49,16 @@ lldp_cfg_intf_set (u32 hw_if_index, u8 ** port_desc, u8 ** mgmt_ip4, lldp_main_t *lm = &lldp_main; vnet_main_t *vnm = lm->vnet_main; ethernet_main_t *em = ðernet_main; - const vnet_hw_interface_t *hi = vnet_get_hw_interface (vnm, hw_if_index); - const ethernet_interface_t *eif = ethernet_get_interface (em, hw_if_index); + const vnet_hw_interface_t *hi; + const ethernet_interface_t *eif; + if (pool_is_free_index (vnm->interface_main.hw_interfaces, hw_if_index)) + { + return lldp_invalid_arg; + } + + hi = vnet_get_hw_interface (vnm, hw_if_index); + eif = ethernet_get_interface (em, hw_if_index); if (!eif) { return lldp_not_supported; -- cgit 1.2.3-korg