summaryrefslogtreecommitdiff
path: root/ubus.c
diff options
context:
space:
mode:
Diffstat (limited to 'ubus.c')
-rw-r--r--ubus.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ubus.c b/ubus.c
index be9e632..3ea71bf 100644
--- a/ubus.c
+++ b/ubus.c
@@ -595,8 +595,10 @@ netifd_iface_handle_device(struct ubus_context *ctx, struct ubus_object *obj,
device_lock();
dev = device_get(blobmsg_data(tb[DEV_NAME]), add ? 2 : 0);
- if (add && !dev)
- return UBUS_STATUS_NOT_FOUND;
+ if (add && !dev) {
+ ret = UBUS_STATUS_NOT_FOUND;
+ goto out;
+ }
if (add) {
device_set_present(dev, true);
@@ -609,6 +611,7 @@ netifd_iface_handle_device(struct ubus_context *ctx, struct ubus_object *obj,
ret = interface_remove_link(iface, dev);
}
+out:
device_unlock();
return ret;