diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/reply.c | 2 | ||||
-rw-r--r-- | source3/utils/testparm.c | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 71312295f4..869123a1fe 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -1229,7 +1229,7 @@ static NTSTATUS can_delete(char *fname,connection_struct *conn, int dirtype) return NT_STATUS_CANNOT_DELETE; } if ((fmode & ~dirtype) & (aHIDDEN | aSYSTEM)) - return NT_STATUS_CANNOT_DELETE; + return NT_STATUS_NO_SUCH_FILE; /* We need a better way to return NT status codes from open... */ unix_ERR_class = 0; diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c index 16918ecd4a..bb89e4ebf2 100644 --- a/source3/utils/testparm.c +++ b/source3/utils/testparm.c @@ -287,6 +287,27 @@ via the %%o substitution. With encrypted passwords this is not possible.\n", lp_ Level II oplocks can only be set if oplocks are also set.\n", lp_servicename(s) ); } + + if (lp_map_hidden(s) && !(lp_create_mask(s) & S_IXOTH)) { + printf("Invalid combination of parameters for service %s. \ + Map hidden can only work if create mask includes octal 01 (S_IXOTH).\n", + lp_servicename(s) ); + } + if (lp_map_hidden(s) && (lp_force_create_mode(s) & S_IXOTH)) { + printf("Invalid combination of parameters for service %s. \ + Map hidden can only work if force create mode excludes octal 01 (S_IXOTH).\n", + lp_servicename(s) ); + } + if (lp_map_system(s) && !(lp_create_mask(s) & S_IXGRP)) { + printf("Invalid combination of parameters for service %s. \ + Map hidden can only work if create mask includes octal 010 (S_IXGRP).\n", + lp_servicename(s) ); + } + if (lp_map_system(s) && (lp_force_create_mode(s) & S_IXGRP)) { + printf("Invalid combination of parameters for service %s. \ + Map hidden can only work if force create mode excludes octal 010 (S_IXGRP).\n", + lp_servicename(s) ); + } } } |