From 2499a8ce82400cbcb1ac330aad131bf21c25db25 Mon Sep 17 00:00:00 2001 From: Alexandru Copot Date: Sat, 7 Sep 2013 12:35:15 +0300 Subject: [PATCH] dpif-netdev: Do not allow adding loopback devices Signed-off-by: Alexandru Copot Signed-off-by: Ben Pfaff --- lib/dpif-netdev.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 46eb743aa..0d489ba2d 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -407,6 +407,7 @@ do_add_port(struct dp_netdev *dp, const char *devname, const char *type, struct dp_netdev_port *port; struct netdev *netdev; struct netdev_rx *rx; + enum netdev_flags flags; const char *open_type; int mtu; int error; @@ -419,9 +420,15 @@ do_add_port(struct dp_netdev *dp, const char *devname, const char *type, if (error) { return error; } - /* XXX reject loopback devices */ /* XXX reject non-Ethernet devices */ + netdev_get_flags(netdev, &flags); + if (flags & NETDEV_LOOPBACK) { + VLOG_ERR("%s: cannot add a loopback device", devname); + netdev_close(netdev); + return EINVAL; + } + error = netdev_rx_open(netdev, &rx); if (error && !(error == EOPNOTSUPP && dpif_netdev_class_is_dummy(dp->class))) { -- 2.47.0