lldp: protection code to check a valid interface index 26/9026/2
authorSteve Shin <jonshin@cisco.com>
Wed, 25 Oct 2017 18:16:45 +0000 (11:16 -0700)
committerJohn Lo <loj@cisco.com>
Wed, 25 Oct 2017 20:14:01 +0000 (20:14 +0000)
When lldp interface is set, it's better to check valid interface index.

Change-Id: I0db0ab6483ad73d28c69893576aa9b719c3b087c
Signed-off-by: Steve Shin <jonshin@cisco.com>
src/vnet/lldp/lldp_cli.c

index ddedd13..239a7ab 100644 (file)
@@ -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 = &ethernet_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;