ubusd: don't check ACL when object is NULL
authorDenis Osvald <denis.osvald@sartura.hr>
Thu, 25 Aug 2016 11:54:52 +0000 (13:54 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 25 Aug 2016 11:58:11 +0000 (13:58 +0200)
If there are any ACLs present other than global wildcard "*", the AVL
tree comparator will compare ACL key to object name. However, object
name can be NULL in cases where ACL check is done on call to internal
ubus objects (e.g. ubus monitor).

With this change we skip checking ACLs on such NULL objects.

Signed-off-by: Denis Osvald <denis.osvald@sartura.hr>
ubusd_acl.c

index 85ada5dc87904207e8f002a28548c67072c95f9d..2700c863da144a7a11e60a26aade4b1913a9d5eb 100644 (file)
@@ -101,7 +101,7 @@ ubusd_acl_check(struct ubus_client *cl, const char *obj,
        struct blob_attr *cur;
        int rem;
 
-       if (!cl->uid)
+       if (!cl->uid || !obj)
                return 0;
 
        acl = avl_find_ge_element(&ubusd_acls, obj, acl, avl);