-/**
- * @brief Remove all @c ACL_TYPE_ACCESS entries from the given file
- * descriptor, leaving the UNIX permission bits.
- *
- * @param fd
- * The file descriptor whose ACLs we want to wipe.
- *
- * @return
- * - @c ACL_SUCCESS - The ACLs were wiped successfully, or none
- * existed in the first place.
- * - @c ACL_ERROR - Unexpected library error.
- */
-int wipe_acls(int fd) {
- /* Initialize an empty ACL, and then overwrite the one on "fd" with it. */
- acl_t empty_acl = acl_init(0);
-
- if (empty_acl == (acl_t)NULL) {
- perror("wipe_acls (acl_init)");
- return ACL_ERROR;
- }
-
- if (acl_set_fd(fd, empty_acl) == ACL_ERROR) {
- perror("wipe_acls (acl_set_fd)");
- acl_free(empty_acl);
- return ACL_ERROR;
- }
-
- acl_free(empty_acl);
- return ACL_SUCCESS;
-}
-
-
/**
* @brief Copy ACLs between file descriptors as xattrs, verbatim.
*
allow_exec = (bool)ace_result;
}
- if (wipe_acls(fd) == ACL_ERROR) {
- perror("apply_default_acl_ex (wipe_acls)");
- result = ACL_ERROR;
- goto cleanup;
- }
-
/* If it's a directory, inherit the parent's default. */
if (S_ISDIR(sp->st_mode)) {
if (acl_copy_xattr(parent_fd,