[PATCH] ubusd_acl: add support for wildcard in methods

Ansuel Smith ansuelsmth at gmail.com
Thu Oct 22 21:01:55 EDT 2020


Add support for wildcard in methods to permiss access to all methods
defined by the object. This can be usefull for process that run as
non-root user and needs to access ubus method.

Signed-off-by: Ansuel Smith <ansuelsmth at gmail.com>
---
 ubusd_acl.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/ubusd_acl.c b/ubusd_acl.c
index e426a4a..e050e2c 100644
--- a/ubusd_acl.c
+++ b/ubusd_acl.c
@@ -147,12 +147,16 @@ ubusd_acl_check(struct ubus_client *cl, const char *obj,
 		case UBUS_ACL_ACCESS:
 			if (acl->methods) {
 				struct blob_attr *cur;
+				char *cur_method;
 				size_t rem;
 
 				blobmsg_for_each_attr(cur, acl->methods, rem)
-					if (blobmsg_type(cur) == BLOBMSG_TYPE_STRING)
-						if (!strcmp(method, blobmsg_get_string(cur)))
+					if (blobmsg_type(cur) == BLOBMSG_TYPE_STRING) {
+						cur_method = blobmsg_get_string(cur);
+
+						if (!strcmp(method, cur_method) || !strcmp("*", cur_method))
 							return 0;
+					}
 			}
 			break;
 		}
-- 
2.27.0




More information about the openwrt-devel mailing list