aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Smith <mgsmith@netgate.com>2021-10-22 09:53:44 -0500
committerDamjan Marion <dmarion@me.com>2021-10-28 11:00:57 +0000
commit2b716b186fdfe0a40d6ddb9e43c795bb05d1ca10 (patch)
tree95b03d9ddf0c57149b90aa71e418046bea42824a
parentc19ac303404966433096c4855a8192f746973522 (diff)
tap: handle null namespace and bridge correctly
Type: fix In tap_create_if(), if args->host_namespace or args->host_bridge are null because no values were set for those, the virtio_if_t entry in virtio_main.interfaces ends up getting populated with values of "(nil)" in net_ns or host_bridge, respectively. Check whether args->host_namespace and args->host_bridge are null before trying to set the corresponding fields on virtio_if_t. Change-Id: I8e1e66a6d7b246e7c66fece406d116ffb1312c64 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
-rw-r--r--src/vnet/devices/tap/tap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/vnet/devices/tap/tap.c b/src/vnet/devices/tap/tap.c
index 2cca1fb7771..2d075f9e0fc 100644
--- a/src/vnet/devices/tap/tap.c
+++ b/src/vnet/devices/tap/tap.c
@@ -625,10 +625,12 @@ tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args)
ethernet_mac_address_generate (args->mac_addr.bytes);
clib_memcpy (vif->mac_addr, args->mac_addr.bytes, 6);
- vif->host_bridge = format (0, "%s%c", args->host_bridge, 0);
+ if (args->host_bridge)
+ vif->host_bridge = format (0, "%s%c", args->host_bridge, 0);
}
vif->host_if_name = format (0, "%s%c", host_if_name, 0);
- vif->net_ns = format (0, "%s%c", args->host_namespace, 0);
+ if (args->host_namespace)
+ vif->net_ns = format (0, "%s%c", args->host_namespace, 0);
vif->host_mtu_size = args->host_mtu_size;
vif->tap_flags = args->tap_flags;
clib_memcpy (vif->host_mac_addr, args->host_mac_addr.bytes, 6);