summaryrefslogtreecommitdiffhomepage
path: root/interface.c
diff options
context:
space:
mode:
authorHans Dedecker <dedeckeh@gmail.com>2014-06-18 05:55:47 +0000
committerSteven Barth <steven@midlink.org>2014-06-18 13:01:32 +0200
commit5d655d1d3f6880b53ea5bafda159c02da038548f (patch)
tree290c189dd77e3c12bde58a278ccbc38444df474c /interface.c
parent5e837916aa1ea128fa833f0803436c24f50cb5df (diff)
netifd: Check device_claim return code in all cases
Fixes observed issue a tunnel interface is reported as up although device_claim failed Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Diffstat (limited to 'interface.c')
-rw-r--r--interface.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/interface.c b/interface.c
index 6ca1d0d..b0fe9de 100644
--- a/interface.c
+++ b/interface.c
@@ -766,8 +766,10 @@ interface_set_l3_dev(struct interface *iface, struct device *dev)
device_add_user(&iface->l3_dev, dev);
if (dev) {
- if (claimed)
- device_claim(&iface->l3_dev);
+ if (claimed) {
+ if (device_claim(&iface->l3_dev) < 0)
+ return;
+ }
interface_ip_set_enabled(&iface->config_ip, enabled);
}
}
@@ -787,8 +789,10 @@ interface_set_main_dev(struct interface *iface, struct device *dev)
return;
}
- if (claimed)
- device_claim(&iface->l3_dev);
+ if (claimed) {
+ if (device_claim(&iface->l3_dev) < 0)
+ return;
+ }
if (!iface->l3_dev.dev)
interface_set_l3_dev(iface, dev);