summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregor Beck <gbeck@sernet.de>2011-05-23 14:27:11 +0200
committerMichael Adam <obnox@samba.org>2011-05-30 17:42:27 +0200
commitb0471303ba50caab7da5f50e6f7d8c4b1c664238 (patch)
tree793530c7550b0d9c0a6f4ab0b9ce00835f08da98
parentc967e8fae5babf6e337c0e2b85fc42eccfe9e4c4 (diff)
downloadsamba-b0471303ba50caab7da5f50e6f7d8c4b1c664238.tar.gz
samba-b0471303ba50caab7da5f50e6f7d8c4b1c664238.tar.bz2
samba-b0471303ba50caab7da5f50e6f7d8c4b1c664238.zip
nfs4_acls: pass ACE_FLAG_INHERITED_ACE up to the client
Signed-off-by: Michael Adam <obnox@samba.org>
-rw-r--r--source3/modules/nfs4_acls.c3
-rw-r--r--source3/modules/nfs4_acls.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c
index c841d83db2..32af896eb7 100644
--- a/source3/modules/nfs4_acls.c
+++ b/source3/modules/nfs4_acls.c
@@ -272,6 +272,9 @@ static bool smbacl4_nfs42win(TALLOC_CTX *mem_ctx, SMB4ACL_T *theacl, /* in */
}
mapped_ace_flags = ace->aceFlags & 0xf;
+ if (ace->aceFlags & SMB_ACE4_INHERITED_ACE) {
+ mapped_ace_flags |= SEC_ACE_FLAG_INHERITED_ACE;
+ }
if (!is_directory && (mapped_ace_flags & (SMB_ACE4_FILE_INHERIT_ACE|SMB_ACE4_DIRECTORY_INHERIT_ACE))) {
/*
* GPFS sets inherits dir_inhert and file_inherit flags
diff --git a/source3/modules/nfs4_acls.h b/source3/modules/nfs4_acls.h
index f4576b0c13..fcab635915 100644
--- a/source3/modules/nfs4_acls.h
+++ b/source3/modules/nfs4_acls.h
@@ -76,9 +76,10 @@ typedef struct _SMB_ACE4PROP_T {
#define SMB_ACE4_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010
#define SMB_ACE4_FAILED_ACCESS_ACE_FLAG 0x00000020
#define SMB_ACE4_IDENTIFIER_GROUP 0x00000040
+#define SMB_ACE4_INHERITED_ACE 0x00000080
#define SMB_ACE4_ALL_FLAGS ( SMB_ACE4_FILE_INHERIT_ACE | SMB_ACE4_DIRECTORY_INHERIT_ACE \
| SMB_ACE4_NO_PROPAGATE_INHERIT_ACE | SMB_ACE4_INHERIT_ONLY_ACE | SMB_ACE4_SUCCESSFUL_ACCESS_ACE_FLAG \
-| SMB_ACE4_FAILED_ACCESS_ACE_FLAG | SMB_ACE4_IDENTIFIER_GROUP )
+| SMB_ACE4_FAILED_ACCESS_ACE_FLAG | SMB_ACE4_IDENTIFIER_GROUP | SMB_ACE4_INHERITED_ACE)
uint32 aceMask; /* Access rights */
/*The bitmask constants used for the access mask field are as follows: */