vhost: show vhost-user <interface> may crash [VPP-1242]
show vhost-user <interface> may cause a crash if interface is semi-bogus. Semi-bogus means it is a known vpp interface which has a hw_if_index, but it is bogus because it is not a vhost-user interface. The fix is to add a check to reject non vhost-user interface for the command. Change-Id: I63f1e8bfbf46f5ec4c30f9fb3546982b63cd7cc5 Signed-off-by: Steven <sluong@cisco.com>
This commit is contained in:
@ -3253,6 +3253,13 @@ show_vhost_user_command_fn (vlib_main_t * vm,
|
|||||||
if (unformat
|
if (unformat
|
||||||
(input, "%U", unformat_vnet_hw_interface, vnm, &hw_if_index))
|
(input, "%U", unformat_vnet_hw_interface, vnm, &hw_if_index))
|
||||||
{
|
{
|
||||||
|
hi = vnet_get_hw_interface (vnm, hw_if_index);
|
||||||
|
if (vhost_user_dev_class.index != hi->dev_class_index)
|
||||||
|
{
|
||||||
|
error = clib_error_return (0, "unknown input `%U'",
|
||||||
|
format_unformat_error, input);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
vec_add1 (hw_if_indices, hw_if_index);
|
vec_add1 (hw_if_indices, hw_if_index);
|
||||||
}
|
}
|
||||||
else if (unformat (input, "descriptors") || unformat (input, "desc"))
|
else if (unformat (input, "descriptors") || unformat (input, "desc"))
|
||||||
|
Reference in New Issue
Block a user