mirror of
https://github.com/samba-team/samba.git
synced 2025-01-08 21:18:16 +03:00
s3: torture: Add test to show an SMB1 DFS path of "\\x//\\/" crashes smbd.
Adds knownfail. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15419 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
parent
c2e83ebe72
commit
2aa9ffa2f0
1
selftest/knownfail.d/dfs_badpath
Normal file
1
selftest/knownfail.d/dfs_badpath
Normal file
@ -0,0 +1 @@
|
||||
^samba3.smbtorture_s3.smb1.SMB1-DFS-BADPATH.smbtorture\(fileserver_smb1\)
|
@ -357,6 +357,20 @@ plantestsuite("samba3.smbtorture_s3.smb1.SMB1-DFS-OPERATIONS",
|
||||
'$PASSWORD',
|
||||
smbtorture3,
|
||||
"-mNT1"])
|
||||
#
|
||||
# SMB1-DFS-BADPATH needs to run against a special share msdfs-pathname-share
|
||||
# BUG: https://bugzilla.samba.org/show_bug.cgi?id=15419
|
||||
#
|
||||
plantestsuite("samba3.smbtorture_s3.smb1.SMB1-DFS-BADPATH",
|
||||
"fileserver_smb1",
|
||||
[os.path.join(samba3srcdir,
|
||||
"script/tests/test_smbtorture_s3.sh"),
|
||||
'SMB1-DFS-BADPATH',
|
||||
'//$SERVER_IP/msdfs-pathname-share',
|
||||
'$USERNAME',
|
||||
'$PASSWORD',
|
||||
smbtorture3,
|
||||
"-mNT1"])
|
||||
|
||||
#
|
||||
# SMB2-STREAM-ACL needs to run against a special share - vfs_wo_fruit
|
||||
|
@ -127,6 +127,7 @@ bool run_smb2_dfs_filename_leading_backslash(int dummy);
|
||||
bool run_smb1_dfs_paths(int dummy);
|
||||
bool run_smb1_dfs_search_paths(int dummy);
|
||||
bool run_smb1_dfs_operations(int dummy);
|
||||
bool run_smb1_dfs_check_badpath(int dummy);
|
||||
bool run_list_dir_async_test(int dummy);
|
||||
bool run_delete_on_close_non_empty(int dummy);
|
||||
bool run_delete_on_close_nonwrite_delete_yes_test(int dummy);
|
||||
|
@ -3810,6 +3810,26 @@ static bool test_smb1_chkpath(struct cli_state *cli)
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*
|
||||
* Test BUG: https://bugzilla.samba.org/show_bug.cgi?id=15419
|
||||
*/
|
||||
|
||||
static bool test_smb1_chkpath_bad(struct cli_state *cli)
|
||||
{
|
||||
NTSTATUS status;
|
||||
|
||||
status = smb1_chkpath(cli, "\\x//\\/");
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("%s:%d SMB1chkpath of %s failed (%s)\n",
|
||||
__FILE__,
|
||||
__LINE__,
|
||||
"\\x//\\/",
|
||||
nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static NTSTATUS smb1_ctemp(struct cli_state *cli,
|
||||
const char *path,
|
||||
char **tmp_path)
|
||||
@ -4226,3 +4246,39 @@ bool run_smb1_dfs_operations(int dummy)
|
||||
(void)smb1_dfs_delete(cli, "\\BAD\\BAD\\file");
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*
|
||||
* Test BUG: https://bugzilla.samba.org/show_bug.cgi?id=15419
|
||||
*/
|
||||
|
||||
bool run_smb1_dfs_check_badpath(int dummy)
|
||||
{
|
||||
struct cli_state *cli = NULL;
|
||||
bool dfs_supported = false;
|
||||
|
||||
printf("Starting SMB1-DFS-CHECK-BADPATH\n");
|
||||
|
||||
if (!torture_init_connection(&cli)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!torture_open_connection(&cli, 0)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Ensure this is a DFS share. */
|
||||
dfs_supported = smbXcli_conn_dfs_supported(cli->conn);
|
||||
if (!dfs_supported) {
|
||||
printf("Server %s does not support DFS\n",
|
||||
smbXcli_conn_remote_name(cli->conn));
|
||||
return false;
|
||||
}
|
||||
dfs_supported = smbXcli_tcon_is_dfs_share(cli->smb1.tcon);
|
||||
if (!dfs_supported) {
|
||||
printf("Share %s does not support DFS\n",
|
||||
cli->share);
|
||||
return false;
|
||||
}
|
||||
|
||||
return test_smb1_chkpath_bad(cli);
|
||||
}
|
||||
|
@ -15385,6 +15385,10 @@ static struct {
|
||||
.name = "SMB1-DFS-OPERATIONS",
|
||||
.fn = run_smb1_dfs_operations,
|
||||
},
|
||||
{
|
||||
.name = "SMB1-DFS-BADPATH",
|
||||
.fn = run_smb1_dfs_check_badpath,
|
||||
},
|
||||
{
|
||||
.name = "CLEANUP1",
|
||||
.fn = run_cleanup1,
|
||||
|
Loading…
Reference in New Issue
Block a user