- for (ida = racl->groups.idas, count = racl->groups.count;
- count--; ida++) {
-@@ -653,7 +662,7 @@ static BOOL pack_smb_acl(SMB_ACL_T *smb_
-
- COE( sys_acl_create_entry,(smb_acl, &entry) );
- COE( sys_acl_set_tag_type,(entry, SMB_ACL_OTHER) );
-- COE2( store_access_in_entry,(racl->other & 7, entry) );
-+ COE2( store_access_in_entry,(racl->other & 077, entry) );
-
- #ifdef DEBUG
- if (sys_acl_valid(*smb_acl) < 0)
-@@ -762,7 +771,7 @@ static void receive_rsync_acl(rsync_acl
- while (count--) {
- char tag = read_byte(f);
- uchar access = read_byte(f);
-- if (access & ~ (4 | 2 | 1)) {
-+ if (access & ~(32 | 16 | 8 | 4 | 2 | 1)) {
- rprintf(FERROR, "receive_rsync_acl: bogus permset %o\n",
- access);
- exit_cleanup(RERR_STREAMIO);
-@@ -835,7 +844,7 @@ static void receive_rsync_acl(rsync_acl
- } else
- #endif
- if (racl->mask == ACL_NO_ENTRY) /* always made non-empty when needed */
-- racl->mask = computed_mask_bits | (racl->group_obj & 7);
-+ racl->mask = computed_mask_bits | (racl->group_obj & 077);
- }
-
- /* receive and build the rsync_acl_lists */
---- old/smb_acls.h
-+++ new/smb_acls.h
-@@ -33,6 +33,11 @@
- #define SMB_ACL_READ ACL_READ
- #define SMB_ACL_WRITE ACL_WRITE
- #define SMB_ACL_EXECUTE ACL_EXECUTE
-+/* These are custom ACL bits used by Adaptec's modifications
-+ * to XFS on their SnapOS units. */
-+#define SMB_ACL_DELETE 0x08
-+#define SMB_ACL_CHMOD 0x10
-+#define SMB_ACL_CHOWN 0x20