summaryrefslogtreecommitdiff
path: root/source4/torture/smb2/acls.c
diff options
context:
space:
mode:
authorTim Prouty <tprouty@samba.org>2009-12-04 16:07:35 -0800
committerTim Prouty <tprouty@samba.org>2009-12-07 16:54:17 -0800
commitf717a79eff334835eb33783adcbb261e126185d6 (patch)
tree11298a53885cac55169ae84e8515e912f2180e23 /source4/torture/smb2/acls.c
parentf4aa47b5ab265b30a0708b72936e1bc26a793df6 (diff)
downloadsamba-f717a79eff334835eb33783adcbb261e126185d6.tar.gz
samba-f717a79eff334835eb33783adcbb261e126185d6.tar.bz2
samba-f717a79eff334835eb33783adcbb261e126185d6.zip
s4 torture: Add a new torture:hide_on_access_denied parameter
It appears some newer versions of windows return NT_STATUS_OBJECT_NAME_NOT_FOUND on a createfile when access is denied rather than NT_STATUS_ACCESS_DENIED. I'm not sure how this translates to directory enumeration yet, but for now make this a parameter that can be checked in the various torture tests. This also gets RAW-ACLS and SMB2-CREATE passing against win7.
Diffstat (limited to 'source4/torture/smb2/acls.c')
-rw-r--r--source4/torture/smb2/acls.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/source4/torture/smb2/acls.c b/source4/torture/smb2/acls.c
index b565a5bce9..c746d96110 100644
--- a/source4/torture/smb2/acls.c
+++ b/source4/torture/smb2/acls.c
@@ -1186,7 +1186,8 @@ static bool test_inheritance(struct torture_context *tctx, struct smb2_tree *tre
CHECK_ACCESS_FLAGS(handle2, SEC_RIGHTS_FILE_ALL);
smb2_util_close(tree, handle2);
} else {
- if (TARGET_IS_WIN7(tctx)) {
+ if (torture_setting_bool(tctx, "hide_on_access_denied",
+ false)) {
CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
} else {
CHECK_STATUS(status, NT_STATUS_ACCESS_DENIED);
@@ -1197,7 +1198,7 @@ static bool test_inheritance(struct torture_context *tctx, struct smb2_tree *tre
io.in.create_disposition = NTCREATEX_DISP_OPEN;
io.in.desired_access = SEC_RIGHTS_FILE_ALL & ~SEC_FILE_EXECUTE;
status = smb2_create(tree, tctx, &io);
- if (TARGET_IS_WIN7(tctx)) {
+ if (torture_setting_bool(tctx, "hide_on_access_denied", false)) {
CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
} else {
CHECK_STATUS(status, NT_STATUS_ACCESS_DENIED);
@@ -1207,7 +1208,7 @@ static bool test_inheritance(struct torture_context *tctx, struct smb2_tree *tre
io.in.create_disposition = NTCREATEX_DISP_OPEN;
io.in.desired_access = SEC_RIGHTS_FILE_ALL;
status = smb2_create(tree, tctx, &io);
- if (TARGET_IS_WIN7(tctx)) {
+ if (torture_setting_bool(tctx, "hide_on_access_denied", false)) {
CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
} else {
CHECK_STATUS(status, NT_STATUS_ACCESS_DENIED);
@@ -1232,7 +1233,7 @@ static bool test_inheritance(struct torture_context *tctx, struct smb2_tree *tre
io.in.desired_access = SEC_RIGHTS_FILE_ALL;
status = smb2_create(tree, tctx, &io);
- if (TARGET_IS_WIN7(tctx)) {
+ if (torture_setting_bool(tctx, "hide_on_access_denied", false)) {
CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
} else {
CHECK_STATUS(status, NT_STATUS_ACCESS_DENIED);