diff options
author | Volker Lendecke <vlendec@samba.org> | 2004-04-28 12:45:16 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:51:36 -0500 |
commit | b82b555b83052d74ec3eed8fbbd7cb7afd0d0462 (patch) | |
tree | d73ab2846fb125c767bfcf5636c03152bf9ec44c | |
parent | 75eef34a23ac60b9218a6fa3da80f579b6830303 (diff) | |
download | samba-b82b555b83052d74ec3eed8fbbd7cb7afd0d0462.tar.gz samba-b82b555b83052d74ec3eed8fbbd7cb7afd0d0462.tar.bz2 samba-b82b555b83052d74ec3eed8fbbd7cb7afd0d0462.zip |
r386: Another torture test to survive.
Believe it or not, w2k3 returns ERRSRV:ERRbaduid DOS error code if you pass in
a wrong vuid. We (Samba 3) currently return NT_STATUS_NETWORK_ACCESS_DENIED.
Volker
(This used to be commit 37221b81f124887ab3cb652f237067ff4b56151e)
-rw-r--r-- | source4/torture/torture.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/source4/torture/torture.c b/source4/torture/torture.c index 17aba4fb79..09ab503274 100644 --- a/source4/torture/torture.c +++ b/source4/torture/torture.c @@ -2756,7 +2756,72 @@ static BOOL run_pipe_number(int dummy) return True; } +/* + Try with a wrong vuid and check error message. + */ + +static BOOL run_vuidtest(int dummy) +{ + struct cli_state *cli; + const char *fname = "\\vuid.tst"; + int fnum; + size_t size; + time_t c_time, a_time, m_time, w_time, m_time2; + BOOL correct = True; + + uint16 orig_vuid; + NTSTATUS result; + + printf("starting vuid test\n"); + + if (!torture_open_connection(&cli)) { + return False; + } + + cli_unlink(cli->tree, fname); + + fnum = cli_open(cli->tree, fname, + O_RDWR | O_CREAT | O_TRUNC, DENY_NONE); + + orig_vuid = cli->session->vuid; + + cli->session->vuid += 1234; + printf("Testing qfileinfo with wrong vuid\n"); + + if (NT_STATUS_IS_OK(result = cli_qfileinfo(cli->tree, fnum, NULL, + &size, &c_time, &a_time, + &m_time, NULL, NULL))) { + printf("ERROR: qfileinfo passed with wrong vuid\n"); + correct = False; + } + + if ( (cli->transport->error.etype != ETYPE_DOS) || + (cli->transport->error.e.dos.eclass != ERRSRV) || + (cli->transport->error.e.dos.ecode != ERRbaduid) ) { + printf("ERROR: qfileinfo should have returned DOS error " + "ERRSRV:ERRbaduid\n but returned %s\n", + cli_errstr(cli->tree)); + correct = False; + } + + cli->session->vuid -= 1234; + + if (NT_STATUS_IS_ERR(cli_close(cli->tree, fnum))) { + printf("close failed (%s)\n", cli_errstr(cli->tree)); + correct = False; + } + + cli_unlink(cli->tree, fname); + + if (!torture_close_connection(cli)) { + correct = False; + } + + printf("vuid test finished\n"); + + return correct; +} /* Test open mode returns on read-only files. @@ -3908,6 +3973,7 @@ static struct { {"DENY2", torture_denytest2, 0}, {"TCON", run_tcon_test, 0}, {"TCONDEV", run_tcon_devtype_test, 0}, + {"VUID", run_vuidtest, 0}, #if 0 {"DFSBASIC", torture_dfs_basic, 0}, {"DFSRENAME", torture_dfs_rename, 0}, |