linux-cp: don't create tap for non-eth ifaces

Creation of lcp tap for non-ethernet interfaces can potentially lead to a crash, so avoid it.

Type: fix

Change-Id: I76ded8a08ea38a2c31d0215804af023207d4d3e1
Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
This commit is contained in:
Stanislav Zaikin
2023-04-04 10:26:39 +02:00
committed by Neale Ranns
parent 00f5d96f04
commit fdf917e8f8

View File

@ -805,6 +805,14 @@ lcp_itf_pair_create (u32 phy_sw_if_index, u8 *host_if_name,
return VNET_API_ERROR_INVALID_SW_IF_INDEX;
}
if (hw->hw_class_index != ethernet_hw_interface_class.index &&
host_if_type == LCP_ITF_HOST_TAP)
{
LCP_ITF_PAIR_ERR (
"pair_create: don't create TAP for non-eth interface; use tun");
return VNET_API_ERROR_INVALID_ARGUMENT;
}
/*
* Use interface-specific netns if supplied.
* Otherwise, use netns if defined, otherwise use the OS default.