mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
smbtorture: add a test trying to create a stream on share without streams support
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15126 BUG: https://bugzilla.samba.org/show_bug.cgi?id=15161 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org>
This commit is contained in:
parent
a5156649d5
commit
3dcdab86f1
1
selftest/knownfail.d/samba3.smb2.create_no_streams
Normal file
1
selftest/knownfail.d/samba3.smb2.create_no_streams
Normal file
@ -0,0 +1 @@
|
||||
^samba3.smb2.create_no_streams.no_stream\(fileserver\)
|
@ -1097,6 +1097,8 @@ for t in tests:
|
||||
elif t == "smb2.twrp":
|
||||
# This is being driven by samba3.blackbox.shadow_copy_torture
|
||||
pass
|
||||
elif t == "smb2.create_no_streams":
|
||||
plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD')
|
||||
elif t == "rpc.wkssvc":
|
||||
plansmbtorture4testsuite(t, "ad_member", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
|
||||
elif t == "rpc.srvsvc":
|
||||
|
@ -389,6 +389,7 @@ smb2_s3only = [
|
||||
"smb2.async_dosmode",
|
||||
"smb2.twrp",
|
||||
"smb2.ea",
|
||||
"smb2.create_no_streams",
|
||||
]
|
||||
smb2 = [x for x in smbtorture4_testsuites("smb2.") if x not in smb2_s3only]
|
||||
|
||||
|
@ -3979,3 +3979,51 @@ struct torture_suite *torture_smb2_bench_init(TALLOC_CTX *ctx)
|
||||
|
||||
return suite;
|
||||
}
|
||||
|
||||
static bool test_no_stream(struct torture_context *tctx,
|
||||
struct smb2_tree *tree)
|
||||
{
|
||||
struct smb2_create c;
|
||||
NTSTATUS status;
|
||||
bool ret = true;
|
||||
const char *names[] = {
|
||||
"test_no_stream::$DATA",
|
||||
"test_no_stream::foooooooooooo",
|
||||
"test_no_stream:stream",
|
||||
"test_no_stream:stream:$DATA",
|
||||
NULL
|
||||
};
|
||||
int i;
|
||||
|
||||
for (i = 0; names[i] != NULL; i++) {
|
||||
c = (struct smb2_create) {
|
||||
.in.desired_access = SEC_FLAG_MAXIMUM_ALLOWED,
|
||||
.in.file_attributes = FILE_ATTRIBUTE_NORMAL,
|
||||
.in.create_disposition = NTCREATEX_DISP_OPEN,
|
||||
.in.share_access = NTCREATEX_SHARE_ACCESS_MASK,
|
||||
.in.fname = names[i],
|
||||
};
|
||||
|
||||
status = smb2_create(tree, tctx, &c);
|
||||
if (!NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_INVALID)) {
|
||||
torture_comment(
|
||||
tctx, "Expected NT_STATUS_OBJECT_NAME_INVALID, "
|
||||
"got %s, name: '%s'\n",
|
||||
nt_errstr(status), names[i]);
|
||||
torture_fail_goto(tctx, done, "Bad create result\n");
|
||||
}
|
||||
}
|
||||
done:
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct torture_suite *torture_smb2_create_no_streams_init(TALLOC_CTX *ctx)
|
||||
{
|
||||
struct torture_suite *suite = torture_suite_create(ctx, "create_no_streams");
|
||||
|
||||
torture_suite_add_1smb2_test(suite, "no_stream", test_no_stream);
|
||||
|
||||
suite->description = talloc_strdup(suite, "SMB2-CREATE stream test on share without streams support");
|
||||
|
||||
return suite;
|
||||
}
|
||||
|
@ -215,6 +215,7 @@ NTSTATUS torture_smb2_init(TALLOC_CTX *ctx)
|
||||
torture_suite_add_1smb2_test(suite, "session-id", run_sessidtest);
|
||||
torture_suite_add_suite(suite, torture_smb2_deny_init(suite));
|
||||
torture_suite_add_suite(suite, torture_smb2_ea(suite));
|
||||
torture_suite_add_suite(suite, torture_smb2_create_no_streams_init(suite));
|
||||
|
||||
suite->description = talloc_strdup(suite, "SMB2-specific tests");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user