char *k;
bool partial = false;
+ if (!len)
+ return NULL;
+
if (obj[len - 1] == '*') {
partial = true;
len--;
return;
o = ubusd_acl_alloc_obj(file, blobmsg_name(obj));
+ if (!o)
+ return;
o->methods = tb[ACL_ACCESS_METHODS];
o->tags = tb[ACL_ACCESS_TAGS];
{
struct ubusd_acl_obj *o = ubusd_acl_alloc_obj(file, obj);
+ if (!o)
+ return;
+
o->subscribe = true;
}
{
struct ubusd_acl_obj *o = ubusd_acl_alloc_obj(file, obj);
+ if (!o)
+ return;
+
o->publish = true;
}
{
struct ubusd_acl_obj *o = ubusd_acl_alloc_obj(file, obj);
+ if (!o)
+ return;
+
o->listen = true;
}
{
struct ubusd_acl_obj *o = ubusd_acl_alloc_obj(file, obj);
+ if (!o)
+ return;
+
o->send = true;
}
objpath = blob_data(attr[UBUS_ATTR_OBJPATH]);
len = strlen(objpath);
+ if (!len)
+ return UBUS_STATUS_INVALID_ARGUMENT;
+
if (objpath[len - 1] != '*') {
obj = avl_find_element(&path, objpath, obj, path);
if (!obj)