summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/smbd/reply.c2
-rw-r--r--source3/utils/testparm.c21
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) );
+ }
}
}