summaryrefslogtreecommitdiff
path: root/source4/torture/basic
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2018-03-28 10:54:30 -0700
committerKarolin Seeger <kseeger@samba.org>2018-04-06 08:21:13 +0200
commit2f418222ad1a6adf6252b265e1f53fd0a29cf473 (patch)
treef0cf66c9bca542b06f12ba43cb8c130dcbd00c72 /source4/torture/basic
parent03876304a1f550330c622fee1e1f2e3e74d61f10 (diff)
downloadsamba-2f418222ad1a6adf6252b265e1f53fd0a29cf473.tar.gz
s4: torture: Ensure a failed file create doesn't create the file.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13358 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <Volker.Lendecke@SerNet.DE> (cherry picked from commit 53cdf7a9a18ed547eade4c3cdd80d286058e440d)
Diffstat (limited to 'source4/torture/basic')
-rw-r--r--source4/torture/basic/delete.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/source4/torture/basic/delete.c b/source4/torture/basic/delete.c
index d74063c310f..bf561e5362e 100644
--- a/source4/torture/basic/delete.c
+++ b/source4/torture/basic/delete.c
@@ -476,10 +476,18 @@ static bool deltest8(struct torture_context *tctx, struct smbcli_state *cli1, st
static bool deltest9(struct torture_context *tctx, struct smbcli_state *cli1, struct smbcli_state *cli2)
{
int fnum1 = -1;
+ NTSTATUS status;
del_clean_area(cli1, cli2);
/* This should fail - we need to set DELETE_ACCESS. */
+
+ /*
+ * A file or directory create with DELETE_ON_CLOSE but
+ * without DELETE_ACCESS should fail with
+ * NT_STATUS_INVALID_PARAMETER.
+ */
+
fnum1 = smbcli_nt_create_full(cli1->tree, fname, 0,
SEC_FILE_READ_DATA|SEC_FILE_WRITE_DATA,
FILE_ATTRIBUTE_NORMAL,
@@ -491,6 +499,25 @@ static bool deltest9(struct torture_context *tctx, struct smbcli_state *cli1, st
talloc_asprintf(tctx, "open of %s succeeded should have failed!",
fname));
+ /* Must fail with NT_STATUS_INVALID_PARAMETER. */
+ status = smbcli_nt_error(cli1->tree);
+ torture_assert_ntstatus_equal(tctx,
+ status,
+ NT_STATUS_INVALID_PARAMETER,
+ talloc_asprintf(tctx, "create of %s should return "
+ "NT_STATUS_INVALID_PARAMETER, got %s",
+ fname,
+ smbcli_errstr(cli1->tree)));
+
+ /* This should fail - the file should not have been created. */
+ status = smbcli_getatr(cli1->tree, fname, NULL, NULL, NULL);
+ torture_assert_ntstatus_equal(tctx,
+ status,
+ NT_STATUS_OBJECT_NAME_NOT_FOUND,
+ talloc_asprintf(tctx, "getattr of %s succeeded should "
+ "not have been created !",
+ fname));
+
return true;
}