diff options
author | Hans Dedecker <dedeckeh@gmail.com> | 2014-06-18 05:55:47 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2014-06-18 13:01:32 +0200 |
commit | 5d655d1d3f6880b53ea5bafda159c02da038548f (patch) | |
tree | 290c189dd77e3c12bde58a278ccbc38444df474c /interface.c | |
parent | 5e837916aa1ea128fa833f0803436c24f50cb5df (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.c | 12 |
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); |