From b4a1af0df6235c010ecc699a488235e4965e4c91 Mon Sep 17 00:00:00 2001 From: Olga Kornievskaia Date: Mon, 12 Mar 2012 16:56:19 -0400 Subject: [PATCH] fixing access_mask to nfs allow in open flags --- daemon/open.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/daemon/open.c b/daemon/open.c index e52531c..2a7fe84 100644 --- a/daemon/open.c +++ b/daemon/open.c @@ -365,16 +365,14 @@ static int map_disposition_2_nfsopen(ULONG disposition, int in_status, bool_t pe static void map_access_2_allowdeny(ULONG access_mask, ULONG access_mode, uint32_t *allow, uint32_t *deny) { - if ((access_mask & FILE_WRITE_DATA) && - ((access_mask & FILE_READ_DATA) || - (access_mask & FILE_EXECUTE))) + if ((access_mask & + (FILE_WRITE_DATA | FILE_APPEND_DATA | FILE_WRITE_ATTRIBUTES)) && + (access_mask & (FILE_READ_DATA | FILE_EXECUTE))) *allow = OPEN4_SHARE_ACCESS_BOTH; - else if ((access_mask & FILE_READ_DATA) || - (access_mask & FILE_EXECUTE)) + else if (access_mask & (FILE_READ_DATA | FILE_EXECUTE)) *allow = OPEN4_SHARE_ACCESS_READ; - else if (access_mask & FILE_WRITE_DATA || - (access_mask & FILE_APPEND_DATA) || - (access_mask & FILE_WRITE_ATTRIBUTES)) + else if (access_mask & + (FILE_WRITE_DATA | FILE_APPEND_DATA | FILE_WRITE_ATTRIBUTES)) *allow = OPEN4_SHARE_ACCESS_WRITE; #define FIX_ALLOW_DENY_WIN2NFS_CONVERSION #ifdef FIX_ALLOW_DENY_WIN2NFS_CONVERSION