X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fbrcompat.c;fp=datapath%2Fbrcompat.c;h=2113eae0f7a39fed65128a8bb6fcf56fa1ab749d;hb=ba429bfa0a4c5e20cc2ab5f1b16519f84b6ee92b;hp=3e840115427af7a3f29644a550349c2b5218f3f0;hpb=a842e7b093786019292998fa192d4ed7d228d686;p=sliver-openvswitch.git diff --git a/datapath/brcompat.c b/datapath/brcompat.c index 3e8401154..2113eae0f 100644 --- a/datapath/brcompat.c +++ b/datapath/brcompat.c @@ -84,6 +84,9 @@ static int brc_add_del_bridge(char __user *uname, int add) struct sk_buff *request; char name[IFNAMSIZ]; + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + if (copy_from_user(name, uname, IFNAMSIZ)) return -EFAULT; @@ -196,6 +199,9 @@ static int brc_add_del_port(struct net_device *dev, int port_ifindex, int add) struct net_device *port; int err; + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + port = __dev_get_by_index(&init_net, port_ifindex); if (!port) return -EINVAL;