diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-12-09 19:36:49 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-12-09 19:36:49 +0100 |
commit | 0eff70a64cf1191fa9d794cd3eb25cd2c4557be4 (patch) | |
tree | d6001d6c9dce5106a70a9e866159b9016d72d5b1 | |
parent | 635ada42517f2fd79663a2a45f07c9461f6d20bc (diff) | |
download | ubus-0eff70a64cf1191fa9d794cd3eb25cd2c4557be4.tar.gz |
ubusd: simplify/fix avl loop in ubusd_acl_check()
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-rw-r--r-- | ubusd_acl.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/ubusd_acl.c b/ubusd_acl.c index dbfa83a..9f0f0fc 100644 --- a/ubusd_acl.c +++ b/ubusd_acl.c @@ -105,16 +105,14 @@ ubusd_acl_check(struct ubus_client *cl, const char *obj, return 0; acl = avl_find_ge_element(&ubusd_acls, obj, acl, avl); - while (acl) { + avl_for_element_to_last(&ubusd_acls, acl, acl, avl) { int diff = ubusd_acl_match_path(obj, acl->avl.key, NULL); if (diff) break; - if (ubusd_acl_match_cred(cl, acl)) { - acl = avl_next_element(acl, avl); + if (ubusd_acl_match_cred(cl, acl)) continue; - } switch (type) { case UBUS_ACL_PUBLISH: @@ -135,7 +133,6 @@ ubusd_acl_check(struct ubus_client *cl, const char *obj, return 0; break; } - acl = avl_next_element(acl, avl); } return -1; |