1
0
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:
Jeremy Allison 2023-07-26 16:37:11 -07:00 committed by Ralph Boehme
parent c2e83ebe72
commit 2aa9ffa2f0
5 changed files with 76 additions and 0 deletions

View File

@ -0,0 +1 @@
^samba3.smbtorture_s3.smb1.SMB1-DFS-BADPATH.smbtorture\(fileserver_smb1\)

View File

@ -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

View File

@ -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);

View File

@ -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);
}

View File

@ -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,