aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/acl
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-10-13 23:25:14 +0900
committerOphestra <cat@gensokyo.uk>2026-10-13 23:33:49 +0900
commit612533ee40aaeb97247db551ecbfc5026eb3ca41 (patch)
tree13ae364771f9bcf0def2b7401924d5b7c82af790 /internal/acl
parentfadb42ec8daeeb8a576582d274cd4aeb64e535c0 (diff)
all: use Linux kernel coding style
The Gitea web interface is no longer publicly accessible, so it no longer matters that this code style does not render well on Gitea. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/acl')
-rw-r--r--internal/acl/libacl-helper.c200
-rw-r--r--internal/acl/libacl-helper.h35
2 files changed, 115 insertions, 120 deletions
diff --git a/internal/acl/libacl-helper.c b/internal/acl/libacl-helper.c
index 5fa35c18..c56e6436 100644
--- a/internal/acl/libacl-helper.c
+++ b/internal/acl/libacl-helper.c
@@ -7,129 +7,127 @@
#include <fcntl.h>
#include <sys/acl.h>
-enum hakurei_acl_status hakurei_update_acl(
- int fd,
- uid_t uid,
- acl_perm_t perms) {
- enum hakurei_acl_status ret;
+enum hakurei_acl_status hakurei_update_acl(int fd, uid_t uid, acl_perm_t perms)
+{
+ enum hakurei_acl_status ret;
- bool v;
- int i;
- acl_t acl, acl_d = NULL;
- acl_entry_t entry;
- acl_tag_t tag_type;
- void *qualifier_p;
- acl_permset_t permset;
- acl_perm_t has_perms;
+ bool v;
+ int i;
+ acl_t acl, acl_d = NULL;
+ acl_entry_t entry;
+ acl_tag_t tag_type;
+ void *qualifier_p;
+ acl_permset_t permset;
+ acl_perm_t has_perms;
- ret = HAKUREI_ACL_GET_FILE;
- acl = acl_get_file_at(fd, "", AT_EMPTY_PATH, ACL_TYPE_ACCESS);
- if (acl == NULL)
- goto out;
+ ret = HAKUREI_ACL_GET_FILE;
+ acl = acl_get_file_at(fd, "", AT_EMPTY_PATH, ACL_TYPE_ACCESS);
+ if (acl == NULL)
+ goto out;
- /* prune entries by uid */
- for (i = acl_get_entry(acl, ACL_FIRST_ENTRY, &entry); i == 1;
- i = acl_get_entry(acl, ACL_NEXT_ENTRY, &entry)) {
- ret = HAKUREI_ACL_GET_TAG_TYPE;
- if (acl_get_tag_type(entry, &tag_type) != 0)
- goto out;
- if (tag_type != ACL_USER)
- continue;
+ /* prune entries by uid */
+ for (i = acl_get_entry(acl, ACL_FIRST_ENTRY, &entry); i == 1;
+ i = acl_get_entry(acl, ACL_NEXT_ENTRY, &entry)) {
+ ret = HAKUREI_ACL_GET_TAG_TYPE;
+ if (acl_get_tag_type(entry, &tag_type) != 0)
+ goto out;
+ if (tag_type != ACL_USER)
+ continue;
- ret = HAKUREI_ACL_GET_QUALIFIER;
- qualifier_p = acl_get_qualifier(entry);
- if (qualifier_p == NULL)
- goto out;
- v = *(uid_t *)qualifier_p == uid;
- acl_free(qualifier_p);
+ ret = HAKUREI_ACL_GET_QUALIFIER;
+ qualifier_p = acl_get_qualifier(entry);
+ if (qualifier_p == NULL)
+ goto out;
+ v = *(uid_t *)qualifier_p == uid;
+ acl_free(qualifier_p);
- if (!v)
- continue;
+ if (!v)
+ continue;
- ret = HAKUREI_ACL_GET_PERMSET;
- if (acl_get_permset(entry, &permset) != 0)
- goto out;
+ ret = HAKUREI_ACL_GET_PERMSET;
+ if (acl_get_permset(entry, &permset) != 0)
+ goto out;
- if (perms == 0)
- goto delete;
+ if (perms == 0)
+ goto delete;
- /* this is quite ugly, but the standard makes it impossible to directly
- * obtain these bits */
- has_perms = 0;
-#define COPY_PERM_BIT(perm) \
- do { \
- ret = HAKUREI_ACL_GET_PERM; \
- i = acl_get_perm(permset, perm); \
- if (i < 0) \
- goto out; \
- if (i > 0) \
- has_perms |= perm; \
- } while (0)
- COPY_PERM_BIT(ACL_READ);
- COPY_PERM_BIT(ACL_WRITE);
- COPY_PERM_BIT(ACL_EXECUTE);
+ /* this is quite ugly, but the standard makes it impossible to
+ * directly obtain these bits */
+ has_perms = 0;
+#define COPY_PERM_BIT(perm) \
+ do { \
+ ret = HAKUREI_ACL_GET_PERM; \
+ i = acl_get_perm(permset, perm); \
+ if (i < 0) \
+ goto out; \
+ if (i > 0) \
+ has_perms |= perm; \
+ } while (0)
+ COPY_PERM_BIT(ACL_READ);
+ COPY_PERM_BIT(ACL_WRITE);
+ COPY_PERM_BIT(ACL_EXECUTE);
- if (perms == has_perms) {
- ret = HAKUREI_ACL_DUP;
- acl_d = acl_dup(acl);
- if (acl_d == NULL)
- goto out;
+ if (perms == has_perms) {
+ ret = HAKUREI_ACL_DUP;
+ acl_d = acl_dup(acl);
+ if (acl_d == NULL)
+ goto out;
- ret = HAKUREI_ACL_CALC_MASK;
- if (acl_calc_mask(&acl_d) != 0)
- goto out;
+ ret = HAKUREI_ACL_CALC_MASK;
+ if (acl_calc_mask(&acl_d) != 0)
+ goto out;
- ret = HAKUREI_ACL_OK;
- if (acl_cmp(acl, acl_d) == 0)
- goto out;
- }
+ ret = HAKUREI_ACL_OK;
+ if (acl_cmp(acl, acl_d) == 0)
+ goto out;
+ }
- delete:
- ret = HAKUREI_ACL_DELETE_ENTRY;
- if (acl_delete_entry(acl, entry) != 0)
- goto out;
- }
+delete:
+ ret = HAKUREI_ACL_DELETE_ENTRY;
+ if (acl_delete_entry(acl, entry) != 0)
+ goto out;
+ }
- if (perms == 0)
- goto set;
+ if (perms == 0)
+ goto set;
- ret = HAKUREI_ACL_CREATE_ENTRY;
- if (acl_create_entry(&acl, &entry) != 0)
- goto out;
+ ret = HAKUREI_ACL_CREATE_ENTRY;
+ if (acl_create_entry(&acl, &entry) != 0)
+ goto out;
- ret = HAKUREI_ACL_GET_PERMSET;
- if (acl_get_permset(entry, &permset) != 0)
- goto out;
+ ret = HAKUREI_ACL_GET_PERMSET;
+ if (acl_get_permset(entry, &permset) != 0)
+ goto out;
- ret = HAKUREI_ACL_ADD_PERM;
- if (acl_add_perm(permset, perms) != 0)
- goto out;
+ ret = HAKUREI_ACL_ADD_PERM;
+ if (acl_add_perm(permset, perms) != 0)
+ goto out;
- ret = HAKUREI_ACL_SET_TAG_TYPE;
- if (acl_set_tag_type(entry, ACL_USER) != 0)
- goto out;
+ ret = HAKUREI_ACL_SET_TAG_TYPE;
+ if (acl_set_tag_type(entry, ACL_USER) != 0)
+ goto out;
- ret = HAKUREI_ACL_SET_QUALIFIER;
- if (acl_set_qualifier(entry, (void *)&uid) != 0)
- goto out;
+ ret = HAKUREI_ACL_SET_QUALIFIER;
+ if (acl_set_qualifier(entry, (void *)&uid) != 0)
+ goto out;
set:
- ret = HAKUREI_ACL_CALC_MASK;
- if (acl_calc_mask(&acl) != 0)
- goto out;
+ ret = HAKUREI_ACL_CALC_MASK;
+ if (acl_calc_mask(&acl) != 0)
+ goto out;
- ret = HAKUREI_ACL_VALID;
- if (acl_valid(acl) != 0)
- goto out;
+ ret = HAKUREI_ACL_VALID;
+ if (acl_valid(acl) != 0)
+ goto out;
- ret = HAKUREI_ACL_SET_FILE;
- if (acl_set_file_at(fd, "", AT_EMPTY_PATH, ACL_TYPE_ACCESS, acl) == 0)
- ret = HAKUREI_ACL_OK;
+ ret = HAKUREI_ACL_SET_FILE;
+ if (acl_set_file_at(fd, "", AT_EMPTY_PATH, ACL_TYPE_ACCESS, acl) == 0)
+ ret = HAKUREI_ACL_OK;
out:
- if (acl != NULL)
- acl_free((void *)acl);
- if (acl_d != NULL)
- acl_free((void *)acl_d);
- return ret;
+ if (acl != NULL)
+ acl_free((void *)acl);
+ if (acl_d != NULL)
+ acl_free((void *)acl_d);
+ return ret;
}
diff --git a/internal/acl/libacl-helper.h b/internal/acl/libacl-helper.h
index 10711dd3..111fac4a 100644
--- a/internal/acl/libacl-helper.h
+++ b/internal/acl/libacl-helper.h
@@ -1,24 +1,21 @@
#include <sys/acl.h>
enum hakurei_acl_status {
- HAKUREI_ACL_OK,
- HAKUREI_ACL_GET_FILE,
- HAKUREI_ACL_GET_TAG_TYPE,
- HAKUREI_ACL_GET_QUALIFIER,
- HAKUREI_ACL_DELETE_ENTRY,
- HAKUREI_ACL_CREATE_ENTRY,
- HAKUREI_ACL_GET_PERMSET,
- HAKUREI_ACL_ADD_PERM,
- HAKUREI_ACL_SET_TAG_TYPE,
- HAKUREI_ACL_SET_QUALIFIER,
- HAKUREI_ACL_CALC_MASK,
- HAKUREI_ACL_VALID,
- HAKUREI_ACL_SET_FILE,
- HAKUREI_ACL_GET_PERM,
- HAKUREI_ACL_DUP,
+ HAKUREI_ACL_OK,
+ HAKUREI_ACL_GET_FILE,
+ HAKUREI_ACL_GET_TAG_TYPE,
+ HAKUREI_ACL_GET_QUALIFIER,
+ HAKUREI_ACL_DELETE_ENTRY,
+ HAKUREI_ACL_CREATE_ENTRY,
+ HAKUREI_ACL_GET_PERMSET,
+ HAKUREI_ACL_ADD_PERM,
+ HAKUREI_ACL_SET_TAG_TYPE,
+ HAKUREI_ACL_SET_QUALIFIER,
+ HAKUREI_ACL_CALC_MASK,
+ HAKUREI_ACL_VALID,
+ HAKUREI_ACL_SET_FILE,
+ HAKUREI_ACL_GET_PERM,
+ HAKUREI_ACL_DUP,
};
-enum hakurei_acl_status hakurei_update_acl(
- int fd,
- uid_t uid,
- acl_perm_t perms);
+enum hakurei_acl_status hakurei_update_acl(int fd, uid_t uid, acl_perm_t perms);