r24478: Check that NTrename also maps NT_STATUS_OBJECT_NAME_COLLISION
authorJeremy Allison <jra@samba.org>
Thu, 16 Aug 2007 01:05:18 +0000 (01:05 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 20:01:55 +0000 (15:01 -0500)
to ERRDOS, ERRrename.
Jeremy.

source/torture/raw/samba3misc.c

index ded230a4239dd3afc08c46f9ba74584786f07f0c..fe413495ea6d4f34501cbb65991fc94b99bde997 100644 (file)
@@ -549,9 +549,24 @@ BOOL torture_samba3_badpath(struct torture_context *torture)
        /* Try the rename test. */
        {
                union smb_rename io;
+               memset(&io, '\0', sizeof(io));
                io.rename.in.pattern1 = fpath1;
                io.rename.in.pattern2 = fpath;
 
+               /* Try with SMBmv rename. */
+               status = smb_raw_rename(cli_nt->tree, &io);
+               CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_COLLISION);
+               status = smb_raw_rename(cli_dos->tree, &io);
+               CHECK_STATUS(status, NT_STATUS_DOS(ERRDOS,ERRrename));
+
+               /* Try with NT rename. */
+               io.generic.level = RAW_RENAME_NTRENAME;
+               io.ntrename.in.old_name = fpath1;
+               io.ntrename.in.new_name = fpath;
+               io.ntrename.in.attrib = 0;
+               io.ntrename.in.cluster_size = 0;
+               io.ntrename.in.flags = RENAME_FLAG_RENAME;
+
                status = smb_raw_rename(cli_nt->tree, &io);
                CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_COLLISION);
                status = smb_raw_rename(cli_dos->tree, &io);