svn commit: samba r2151 - in branches/SAMBA_4_0/source/torture/raw: .

jra at samba.org jra at samba.org
Tue Aug 31 21:34:14 GMT 2004


Author: jra
Date: 2004-08-31 21:34:14 +0000 (Tue, 31 Aug 2004)
New Revision: 2151

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/torture/raw&rev=2151&nolog=1

Log:
Added some more ad-hoc tests. Found bugs in Samba3 with these :-).
Jeremy.

Modified:
   branches/SAMBA_4_0/source/torture/raw/chkpath.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/raw/chkpath.c
===================================================================
--- branches/SAMBA_4_0/source/torture/raw/chkpath.c	2004-08-31 21:29:50 UTC (rev 2150)
+++ branches/SAMBA_4_0/source/torture/raw/chkpath.c	2004-08-31 21:34:14 UTC (rev 2151)
@@ -37,6 +37,7 @@
 	NTSTATUS status;
 	BOOL ret = True;
 	int fnum = -1;
+	int fnum1 = -1;
 
 	io.in.path = BASEDIR;
 
@@ -80,6 +81,61 @@
 	status = smb_raw_chkpath(cli->tree, &io);
 	CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
 
+	io.in.path = BASEDIR"\\.\\";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
+
+	io.in.path = BASEDIR"\\.\\nt";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
+	io.in.path = BASEDIR"\\.\\.\\nt";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
+	io.in.path = BASEDIR"\\nt";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	io.in.path = BASEDIR".\\foo";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
+	io.in.path = ".\\";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
+
+	io.in.path = ".\\.";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
+	io.in.path = ".\\.\\.\\.\\foo\\.\\.\\";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
+	io.in.path = BASEDIR".\\.\\.\\.\\foo\\.\\.\\";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
+	io.in.path = BASEDIR".\\.\\.\\.\\foo\\..\\.\\";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
+	io.in.path = BASEDIR".";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
+
 	io.in.path = "\\";
 	printf("testing %s\n", io.in.path);
 	status = smb_raw_chkpath(cli->tree, &io);
@@ -115,11 +171,33 @@
 	status = smb_raw_chkpath(cli->tree, &io);
 	CHECK_STATUS(status, NT_STATUS_NOT_A_DIRECTORY);
 
+	/* We expect this open to fail with the same error code as the chkpath below. */
+	fnum1 = smbcli_nt_create_full(cli->tree, BASEDIR "\\nt\\Visual Studio\\VB98\\vb6.exe\\3",
+				0, GENERIC_RIGHTS_FILE_ALL_ACCESS,
+				FILE_ATTRIBUTE_NORMAL,
+				NTCREATEX_SHARE_ACCESS_DELETE|
+				NTCREATEX_SHARE_ACCESS_READ|
+				NTCREATEX_SHARE_ACCESS_WRITE,
+				NTCREATEX_DISP_OVERWRITE_IF,
+				0, 0);
+	status = smbcli_nt_error(cli->tree);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
 	io.in.path = BASEDIR "\\nt\\Visual Studio\\VB98\\vb6.exe\\3";
 	printf("testing %s\n", io.in.path);
 	status = smb_raw_chkpath(cli->tree, &io);
 	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
 
+	io.in.path = BASEDIR "\\nt\\Visual Studio\\VB98\\vb6.exe\\3\\foo";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
+	io.in.path = BASEDIR "\\nt\\3\\foo";
+	printf("testing %s\n", io.in.path);
+	status = smb_raw_chkpath(cli->tree, &io);
+	CHECK_STATUS(status, NT_STATUS_OBJECT_PATH_NOT_FOUND);
+
 	io.in.path = BASEDIR "\\nt\\Visual Studio\\*\\vb6.exe\\3";
 	printf("testing %s\n", io.in.path);
 	status = smb_raw_chkpath(cli->tree, &io);



More information about the samba-cvs mailing list