summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-08-12 04:28:22 +0000
committerJeremy Allison <jra@samba.org>2003-08-12 04:28:22 +0000
commit4511b334a8f68048d176dd381b9f1a3530a0a8cd (patch)
tree6261a44475a4ecc46e8be5906f1131706e7b5fd9
parentaed1610ec22bb3eb283f548892fb9e00917df5f7 (diff)
downloadsamba-4511b334a8f68048d176dd381b9f1a3530a0a8cd.tar.gz
samba-4511b334a8f68048d176dd381b9f1a3530a0a8cd.tar.bz2
samba-4511b334a8f68048d176dd381b9f1a3530a0a8cd.zip
Test invalid map system, map hidden, create mask, force create mask
parameters. Fix return code for Samba 4 torture tester. Jeremy. (This used to be commit c043835c878ff062cb6eede02334f9e0ebb01050)
-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) );
+ }
}
}