aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/ethernet/interface.c
diff options
context:
space:
mode:
authorSteve Shin <jonshin@cisco.com>2018-03-07 13:29:29 -0800
committerSteve Shin <jonshin@cisco.com>2018-03-07 13:42:09 -0800
commita36f08c364d96fad0ec07ac123b62530f6a8a6d5 (patch)
tree18b9319c6f50400bb320164a4fb824872012742e /src/vnet/ethernet/interface.c
parent8db943000763499764c0fefbf0c237b8345ffe36 (diff)
Fix Avoid crash in vnet_delete_sub_interface routine
vnet_get_sw_interface shoud be called after sw_if_index is validated. Change-Id: I36f1d90999c740803386404ba9b32703b659cd54 Signed-off-by: Steve Shin <jonshin@cisco.com>
Diffstat (limited to 'src/vnet/ethernet/interface.c')
-rw-r--r--src/vnet/ethernet/interface.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vnet/ethernet/interface.c b/src/vnet/ethernet/interface.c
index 091ca2977ee..a29302bee3e 100644
--- a/src/vnet/ethernet/interface.c
+++ b/src/vnet/ethernet/interface.c
@@ -739,12 +739,13 @@ int
vnet_delete_sub_interface (u32 sw_if_index)
{
vnet_main_t *vnm = vnet_get_main ();
- vnet_sw_interface_t *si = vnet_get_sw_interface (vnm, sw_if_index);
+ vnet_sw_interface_t *si;
int rv = 0;
if (pool_is_free_index (vnm->interface_main.sw_interfaces, sw_if_index))
return VNET_API_ERROR_INVALID_SW_IF_INDEX;
+ si = vnet_get_sw_interface (vnm, sw_if_index);
if (si->type == VNET_SW_INTERFACE_TYPE_SUB ||
si->type == VNET_SW_INTERFACE_TYPE_P2P)
{