[SCM] Samba Shared Repository - branch master updated

Andrew Tridgell tridge at samba.org
Thu Oct 15 03:04:09 MDT 2009


The branch, master has been updated
       via  dab799e... s4-smbserver: fixed root_fid in nttrans create
       via  4a4f420... s4-libcli: fixed structure element bug in ntcreatexreadx
       via  ffa8c45... s4-torture: catch bad command line options
       via  c5cfda9... s4-pvfs: implement root_fid support in posix backend
       via  3c028ff... s4-smb: declare root_fid as a file handle
       via  c73ba89... s4-pvfs: fixed handling of SEC_FLAG_MAXIMUM_ALLOWED
       via  387e67d... s4-ldaptest: "testgroup" is a bit too common
      from  ea60b72... s4:ntlmssp server - use also here the new "lp_dnsdomain()" call

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit dab799e5695dc2de9895f2adb8ed50d672a39f40
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Oct 15 18:53:23 2009 +1100

    s4-smbserver: fixed root_fid in nttrans create

commit 4a4f420481cae5ba82a42d6763d3732defccac24
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Oct 15 18:52:56 2009 +1100

    s4-libcli: fixed structure element bug in ntcreatexreadx
    
    This one didn't matter until the root_fid changed the alignment of the
    two structures.

commit ffa8c45372fb3404d03b368b51e29c3338f13748
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Oct 15 18:27:57 2009 +1100

    s4-torture: catch bad command line options
    
    It is annoying when you mistype a command line option and aren't told.

commit c5cfda9e8a8826dbc2ade5116b0648575efe5ae7
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Oct 15 18:27:21 2009 +1100

    s4-pvfs: implement root_fid support in posix backend
    
    Construct the filename from the old handle and the new name.

commit 3c028ff88b7f8b4a19a058ee44aeb42c10f4b398
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Oct 15 18:26:19 2009 +1100

    s4-smb: declare root_fid as a file handle
    
    In order to implement root_fid in the s4 SMB server we need to declare
    it as a handle type, just as for other fnum values in SMB. This
    required some extensive (but simple) changes in many bits of code.

commit c73ba89112dda50e1828e11c87f8006bc4968546
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Oct 15 18:23:42 2009 +1100

    s4-pvfs: fixed handling of SEC_FLAG_MAXIMUM_ALLOWED
    
    The CREATEX_ACCESS test shows that this is used as a bit test, not a
    equality test

commit 387e67d53f7c0479ce29f6dd2a031c1158222491
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Oct 15 16:11:30 2009 +1100

    s4-ldaptest: "testgroup" is a bit too common
    
    This failed on one of my test boxes that has a group called
    "testgroup". using "testgroupXX" should be a bit better.

-----------------------------------------------------------------------

Summary of changes:
 source4/lib/ldb/tests/python/ldap.py     |    4 +-
 source4/libcli/clifile.c                 |    2 +-
 source4/libcli/raw/interfaces.h          |    4 +-
 source4/libcli/raw/rawfile.c             |    8 ++--
 source4/libcli/smb_composite/appendacl.c |    2 +-
 source4/librpc/rpc/dcerpc_smb.c          |    2 +-
 source4/ntvfs/ntvfs_generic.c            |    2 +-
 source4/ntvfs/posix/pvfs_acl.c           |    2 +-
 source4/ntvfs/posix/pvfs_open.c          |   15 ++++++
 source4/smb_server/smb/nttrans.c         |    2 +-
 source4/smb_server/smb/reply.c           |    2 +-
 source4/torture/basic/base.c             |    4 +-
 source4/torture/basic/charset.c          |    2 +-
 source4/torture/basic/denytest.c         |   14 +++---
 source4/torture/basic/disconnect.c       |    2 +-
 source4/torture/basic/unlink.c           |    2 +-
 source4/torture/gentest.c                |    6 +-
 source4/torture/nbench/nbio.c            |    2 +-
 source4/torture/raw/acls.c               |   20 ++++----
 source4/torture/raw/context.c            |   16 +++---
 source4/torture/raw/eas.c                |    6 +-
 source4/torture/raw/mux.c                |    2 +-
 source4/torture/raw/notify.c             |   28 +++++-----
 source4/torture/raw/open.c               |   14 +++---
 source4/torture/raw/openbench.c          |    2 +-
 source4/torture/raw/oplock.c             |   80 +++++++++++++++---------------
 source4/torture/raw/read.c               |    6 +-
 source4/torture/raw/rename.c             |    6 +-
 source4/torture/raw/samba3misc.c         |   10 ++--
 source4/torture/raw/streams.c            |   26 +++++-----
 source4/torture/raw/unlink.c             |    6 +-
 source4/torture/smbtorture.c             |    3 +
 source4/torture/util_smb.c               |    2 +-
 33 files changed, 161 insertions(+), 143 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/lib/ldb/tests/python/ldap.py b/source4/lib/ldb/tests/python/ldap.py
index 3011b7e..118fb87 100755
--- a/source4/lib/ldb/tests/python/ldap.py
+++ b/source4/lib/ldb/tests/python/ldap.py
@@ -222,13 +222,13 @@ class BasicTests(unittest.TestCase):
 
         m = Message()
         m.dn = Dn(ldb, "cn=ldaptestgroup,cn=users," + self.base_dn)
-        m["sAMAccountName"] = MessageElement("testgroup", FLAG_MOD_REPLACE,
+        m["sAMAccountName"] = MessageElement("testgroupXX", FLAG_MOD_REPLACE,
           "sAMAccountName")
         ldb.modify(m)
 
         m = Message()
         m.dn = Dn(ldb, "cn=ldaptestgroup,cn=users," + self.base_dn)
-        m["sAMAccountName"] = MessageElement("testgroup2", FLAG_MOD_ADD,
+        m["sAMAccountName"] = MessageElement("testgroupXX2", FLAG_MOD_ADD,
           "sAMAccountName")
         try:
             ldb.modify(m)
diff --git a/source4/libcli/clifile.c b/source4/libcli/clifile.c
index 2cf1740..b76bdc0 100644
--- a/source4/libcli/clifile.c
+++ b/source4/libcli/clifile.c
@@ -241,7 +241,7 @@ int smbcli_nt_create_full(struct smbcli_tree *tree, const char *fname,
 
 	open_parms.ntcreatex.level = RAW_OPEN_NTCREATEX;
 	open_parms.ntcreatex.in.flags = CreatFlags;
-	open_parms.ntcreatex.in.root_fid = 0;
+	open_parms.ntcreatex.in.root_fid.fnum = 0;
 	open_parms.ntcreatex.in.access_mask = DesiredAccess;
 	open_parms.ntcreatex.in.file_attr = FileAttributes;
 	open_parms.ntcreatex.in.alloc_size = 0;
diff --git a/source4/libcli/raw/interfaces.h b/source4/libcli/raw/interfaces.h
index f7d64d0..af2158c 100644
--- a/source4/libcli/raw/interfaces.h
+++ b/source4/libcli/raw/interfaces.h
@@ -1418,7 +1418,7 @@ union smb_open {
 		enum smb_open_level level;
 		struct {
 			uint32_t flags;
-			uint32_t root_fid;
+			union smb_handle root_fid;
 			uint32_t access_mask;
 			uint64_t alloc_size;
 			uint32_t file_attr;
@@ -1628,7 +1628,7 @@ union smb_open {
 		enum smb_open_level level;
 		struct {
 			uint32_t flags;
-			uint32_t root_fid;
+			union smb_handle root_fid;
 			uint32_t access_mask;
 			uint64_t alloc_size;
 			uint32_t file_attr;
diff --git a/source4/libcli/raw/rawfile.c b/source4/libcli/raw/rawfile.c
index ea254a5..b6849fe 100644
--- a/source4/libcli/raw/rawfile.c
+++ b/source4/libcli/raw/rawfile.c
@@ -379,7 +379,7 @@ static struct smbcli_request *smb_raw_nttrans_create_send(struct smbcli_tree *tr
 	params = nt.in.params.data;
 
 	SIVAL(params,  0, parms->ntcreatex.in.flags);
-	SIVAL(params,  4, parms->ntcreatex.in.root_fid);
+	SIVAL(params,  4, parms->ntcreatex.in.root_fid.fnum);
 	SIVAL(params,  8, parms->ntcreatex.in.access_mask);
 	SBVAL(params, 12, parms->ntcreatex.in.alloc_size);
 	SIVAL(params, 20, parms->ntcreatex.in.file_attr);
@@ -564,7 +564,7 @@ _PUBLIC_ struct smbcli_request *smb_raw_open_send(struct smbcli_tree *tree, unio
 		SSVAL(req->out.vwv, VWV(1),0);
 		SCVAL(req->out.vwv, VWV(2),0); /* padding */
 		SIVAL(req->out.vwv,  7, parms->ntcreatex.in.flags);
-		SIVAL(req->out.vwv, 11, parms->ntcreatex.in.root_fid);
+		SIVAL(req->out.vwv, 11, parms->ntcreatex.in.root_fid.fnum);
 		SIVAL(req->out.vwv, 15, parms->ntcreatex.in.access_mask);
 		SBVAL(req->out.vwv, 19, parms->ntcreatex.in.alloc_size);
 		SIVAL(req->out.vwv, 27, parms->ntcreatex.in.file_attr);
@@ -623,7 +623,7 @@ _PUBLIC_ struct smbcli_request *smb_raw_open_send(struct smbcli_tree *tree, unio
 		SSVAL(req->out.vwv, VWV(1),0);
 		SCVAL(req->out.vwv, VWV(2),0); /* padding */
 		SIVAL(req->out.vwv,  7, parms->ntcreatexreadx.in.flags);
-		SIVAL(req->out.vwv, 11, parms->ntcreatexreadx.in.root_fid);
+		SIVAL(req->out.vwv, 11, parms->ntcreatexreadx.in.root_fid.fnum);
 		SIVAL(req->out.vwv, 15, parms->ntcreatexreadx.in.access_mask);
 		SBVAL(req->out.vwv, 19, parms->ntcreatexreadx.in.alloc_size);
 		SIVAL(req->out.vwv, 27, parms->ntcreatexreadx.in.file_attr);
@@ -819,7 +819,7 @@ _PUBLIC_ NTSTATUS smb_raw_open_recv(struct smbcli_request *req, TALLOC_CTX *mem_
 		parms->ntcreatexreadx.out.compaction_mode = SVAL(req->in.vwv, VWV(3));
 		parms->ntcreatexreadx.out.nread = SVAL(req->in.vwv, VWV(5));
 		if (parms->ntcreatexreadx.out.nread >
-		    MAX(parms->openxreadx.in.mincnt, parms->openxreadx.in.maxcnt) ||
+		    MAX(parms->ntcreatexreadx.in.mincnt, parms->ntcreatexreadx.in.maxcnt) ||
 		    !smbcli_raw_pull_data(&req->in.bufinfo, req->in.hdr + SVAL(req->in.vwv, VWV(6)),
 			                  parms->ntcreatexreadx.out.nread,
 			                  parms->ntcreatexreadx.out.data)) {
diff --git a/source4/libcli/smb_composite/appendacl.c b/source4/libcli/smb_composite/appendacl.c
index 69ed62a..c1a964f 100644
--- a/source4/libcli/smb_composite/appendacl.c
+++ b/source4/libcli/smb_composite/appendacl.c
@@ -254,7 +254,7 @@ struct composite_context *smb_composite_appendacl_send(struct smbcli_tree *tree,
 	if (state->io_open == NULL) goto failed;
 	
 	state->io_open->ntcreatex.level               = RAW_OPEN_NTCREATEX;
-	state->io_open->ntcreatex.in.root_fid = 0;
+	state->io_open->ntcreatex.in.root_fid.fnum    = 0;
 	state->io_open->ntcreatex.in.flags            = 0;
 	state->io_open->ntcreatex.in.access_mask      = SEC_FLAG_MAXIMUM_ALLOWED;
 	state->io_open->ntcreatex.in.file_attr        = FILE_ATTRIBUTE_NORMAL;
diff --git a/source4/librpc/rpc/dcerpc_smb.c b/source4/librpc/rpc/dcerpc_smb.c
index f4e6b8c..947a9c5 100644
--- a/source4/librpc/rpc/dcerpc_smb.c
+++ b/source4/librpc/rpc/dcerpc_smb.c
@@ -476,7 +476,7 @@ struct composite_context *dcerpc_pipe_open_smb_send(struct dcerpc_pipe *p,
 
 	state->open->ntcreatex.level = RAW_OPEN_NTCREATEX;
 	state->open->ntcreatex.in.flags = 0;
-	state->open->ntcreatex.in.root_fid = 0;
+	state->open->ntcreatex.in.root_fid.fnum = 0;
 	state->open->ntcreatex.in.access_mask = 
 		SEC_STD_READ_CONTROL |
 		SEC_FILE_WRITE_ATTRIBUTE |
diff --git a/source4/ntvfs/ntvfs_generic.c b/source4/ntvfs/ntvfs_generic.c
index 5838178..6e2e075 100644
--- a/source4/ntvfs/ntvfs_generic.c
+++ b/source4/ntvfs/ntvfs_generic.c
@@ -515,7 +515,7 @@ NTSTATUS ntvfs_map_open(struct ntvfs_module_context *ntvfs,
 			io2->generic.in.flags = 0;
 			break;
 		}
-		io2->generic.in.root_fid	= 0;
+		io2->generic.in.root_fid.fnum	= 0;
 		io2->generic.in.access_mask	= io->smb2.in.desired_access;
 		io2->generic.in.alloc_size	= io->smb2.in.alloc_size;
 		io2->generic.in.file_attr	= io->smb2.in.file_attributes;
diff --git a/source4/ntvfs/posix/pvfs_acl.c b/source4/ntvfs/posix/pvfs_acl.c
index ad7ac5a..7a204b4 100644
--- a/source4/ntvfs/posix/pvfs_acl.c
+++ b/source4/ntvfs/posix/pvfs_acl.c
@@ -516,7 +516,7 @@ NTSTATUS pvfs_access_check_unix(struct pvfs_state *pvfs,
 		max_bits |= SEC_STD_ALL;
 	}
 
-	if (*access_mask == SEC_FLAG_MAXIMUM_ALLOWED) {
+	if (*access_mask & SEC_FLAG_MAXIMUM_ALLOWED) {
 		*access_mask = max_bits;
 		return NT_STATUS_OK;
 	}
diff --git a/source4/ntvfs/posix/pvfs_open.c b/source4/ntvfs/posix/pvfs_open.c
index 46e39a0..e8f1c0c 100644
--- a/source4/ntvfs/posix/pvfs_open.c
+++ b/source4/ntvfs/posix/pvfs_open.c
@@ -1272,6 +1272,21 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
 		return NT_STATUS_ACCESS_DENIED;
 	}
 
+	/* cope with non-zero root_fid */
+	if (io->ntcreatex.in.root_fid.ntvfs != NULL) {
+		f = pvfs_find_fd(pvfs, req, io->ntcreatex.in.root_fid.ntvfs);
+		if (f == NULL) {
+			return NT_STATUS_INVALID_HANDLE;
+		}
+		if (f->handle->fd != -1) {
+			return NT_STATUS_INVALID_DEVICE_REQUEST;
+		}
+		io->ntcreatex.in.fname = talloc_asprintf(req, "%s\\%s", 
+							 f->handle->name->original_name,
+							 io->ntcreatex.in.fname);
+		NT_STATUS_HAVE_NO_MEMORY(io->ntcreatex.in.fname);			
+	}
+
 	if (io->ntcreatex.in.file_attr & (FILE_ATTRIBUTE_DEVICE|
 					  FILE_ATTRIBUTE_VOLUME| 
 					  (~FILE_ATTRIBUTE_ALL_MASK))) {
diff --git a/source4/smb_server/smb/nttrans.c b/source4/smb_server/smb/nttrans.c
index e739f39..23eb04b 100644
--- a/source4/smb_server/smb/nttrans.c
+++ b/source4/smb_server/smb/nttrans.c
@@ -119,7 +119,7 @@ static NTSTATUS nttrans_create(struct smbsrv_request *req,
 	params = trans->in.params.data;
 
 	io->ntcreatex.in.flags            = IVAL(params,  0);
-	io->ntcreatex.in.root_fid         = IVAL(params,  4);
+	io->ntcreatex.in.root_fid.ntvfs   = smbsrv_pull_fnum(req, req->in.vwv, 4);
 	io->ntcreatex.in.access_mask      = IVAL(params,  8);
 	io->ntcreatex.in.alloc_size       = BVAL(params, 12);
 	io->ntcreatex.in.file_attr        = IVAL(params, 20);
diff --git a/source4/smb_server/smb/reply.c b/source4/smb_server/smb/reply.c
index 104caca..2c99a38 100644
--- a/source4/smb_server/smb/reply.c
+++ b/source4/smb_server/smb/reply.c
@@ -2216,7 +2216,7 @@ void smbsrv_reply_ntcreate_and_X(struct smbsrv_request *req)
 	/* notice that the word parameters are not word aligned, so we don't use VWV() */
 	fname_len =                         SVAL(req->in.vwv, 5);
 	io->ntcreatex.in.flags =            IVAL(req->in.vwv, 7);
-	io->ntcreatex.in.root_fid =         IVAL(req->in.vwv, 11);
+	io->ntcreatex.in.root_fid.ntvfs =   smbsrv_pull_fnum(req, req->in.vwv, 11);
 	io->ntcreatex.in.access_mask =      IVAL(req->in.vwv, 15);
 	io->ntcreatex.in.alloc_size =       BVAL(req->in.vwv, 19);
 	io->ntcreatex.in.file_attr =        IVAL(req->in.vwv, 27);
diff --git a/source4/torture/basic/base.c b/source4/torture/basic/base.c
index 892ca30..355c569 100644
--- a/source4/torture/basic/base.c
+++ b/source4/torture/basic/base.c
@@ -1493,7 +1493,7 @@ static bool torture_samba3_errorpaths(struct torture_context *tctx)
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
 	io.ntcreatex.in.flags = NTCREATEX_FLAGS_EXTENDED;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.access_mask = SEC_RIGHTS_FILE_ALL;
 	io.ntcreatex.in.alloc_size = 1024*1024;
 	io.ntcreatex.in.file_attr = FILE_ATTRIBUTE_DIRECTORY;
@@ -1627,7 +1627,7 @@ static bool torture_samba3_errorpaths(struct torture_context *tctx)
 		smbcli_close(cli_nt->tree, fnum);
 
 		io.generic.level = RAW_OPEN_NTCREATEX;
-		io.ntcreatex.in.root_fid = 0;
+		io.ntcreatex.in.root_fid.fnum = 0;
 		io.ntcreatex.in.access_mask = SEC_RIGHTS_FILE_ALL;
 		io.ntcreatex.in.alloc_size = 0;
 		io.ntcreatex.in.file_attr = FILE_ATTRIBUTE_DIRECTORY;
diff --git a/source4/torture/basic/charset.c b/source4/torture/basic/charset.c
index 5ac299d..2f50376 100644
--- a/source4/torture/basic/charset.c
+++ b/source4/torture/basic/charset.c
@@ -70,7 +70,7 @@ static NTSTATUS unicode_open(struct torture_context *tctx,
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
 	io.ntcreatex.in.flags = NTCREATEX_FLAGS_EXTENDED;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.access_mask = SEC_RIGHTS_FILE_ALL;
 	io.ntcreatex.in.alloc_size = 0;
 	io.ntcreatex.in.file_attr = FILE_ATTRIBUTE_NORMAL;
diff --git a/source4/torture/basic/denytest.c b/source4/torture/basic/denytest.c
index 0802896..8decf09 100644
--- a/source4/torture/basic/denytest.c
+++ b/source4/torture/basic/denytest.c
@@ -1768,7 +1768,7 @@ static bool torture_ntdenytest(struct torture_context *tctx,
 	GetTimeOfDay(&tv_start);
 
 	io1.ntcreatex.level = RAW_OPEN_NTCREATEX;
-	io1.ntcreatex.in.root_fid = 0;
+	io1.ntcreatex.in.root_fid.fnum = 0;
 	io1.ntcreatex.in.flags = NTCREATEX_FLAGS_EXTENDED;
 	io1.ntcreatex.in.create_options = NTCREATEX_OPTIONS_NON_DIRECTORY_FILE;
 	io1.ntcreatex.in.file_attr = 0;
@@ -2150,6 +2150,7 @@ static void createx_fill_file(union smb_open *open_parms, int accessmode,
 	    .open_disposition = NTCREATEX_DISP_OPEN_IF,
 	    .create_options = 0,
 	    .fname = fname,
+            .root_fid = { .fnum = 0 },
 	);
 }
 
@@ -2189,7 +2190,7 @@ static bool createx_test_dir(struct torture_context *tctx,
 	    .open_disposition = NTCREATEX_DISP_CREATE,
 	    .create_options = 0,
 	    .fname = CHILD,
-	    .root_fid = fnum,
+	    .root_fid = { .fnum = fnum },
 	);
 
 	result[CXD_DIR_CREATE_CHILD] =
@@ -2205,7 +2206,7 @@ static bool createx_test_dir(struct torture_context *tctx,
 	    .open_disposition = NTCREATEX_DISP_OPEN,
 	    .create_options = 0,
 	    .fname = KNOWN,
-	    .root_fid = fnum,
+	    .root_fid = {.fnum = fnum},
 	);
 
 	result[CXD_DIR_TRAVERSE] =
@@ -2231,14 +2232,14 @@ static bool createx_test_file(struct torture_context *tctx,
 	rd.readx.in.file.fnum = fnum;
 	rd.readx.in.mincnt = sizeof(buf);
 	rd.readx.in.maxcnt = sizeof(buf);
-	rd.readx.out.data = buf;
+	rd.readx.out.data = (uint8_t *)buf;
 
 	result[CXD_FILE_READ] = smb_raw_read(tree, &rd);
 
 	wr.writex.level = RAW_WRITE_WRITEX;
 	wr.writex.in.file.fnum = fnum;
 	wr.writex.in.count = sizeof(buf);
-	wr.writex.in.data = buf;
+	wr.writex.in.data = (uint8_t *)buf;
 
 	result[CXD_FILE_WRITE] = smb_raw_write(tree, &wr);
 
@@ -2248,7 +2249,7 @@ static bool createx_test_file(struct torture_context *tctx,
 	rd.readx.in.mincnt = sizeof(buf);
 	rd.readx.in.maxcnt = sizeof(buf);
 	rd.readx.in.read_for_execute = 1;
-	rd.readx.out.data = buf;
+	rd.readx.out.data = (uint8_t *)buf;
 
 	result[CXD_FILE_EXECUTE] = smb_raw_read(tree, &rd);
 
@@ -2580,7 +2581,6 @@ bool torture_createx_access(struct torture_context *tctx,
 			torture_createx_specific(tctx, cli, NULL, mem_ctx,
 			    &cxd, est);
 		}
-
 		for (i = 0; i < num_access_bits; i++) {
 			/* And now run through the single access bits. */
 			cxd.cxd_access1 = 1 << i;
diff --git a/source4/torture/basic/disconnect.c b/source4/torture/basic/disconnect.c
index 89e05d6..0de0910 100644
--- a/source4/torture/basic/disconnect.c
+++ b/source4/torture/basic/disconnect.c
@@ -49,7 +49,7 @@ static bool test_disconnect_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 	printf("trying open/disconnect\n");
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_FILE_READ_DATA;
 	io.ntcreatex.in.create_options = 0;
diff --git a/source4/torture/basic/unlink.c b/source4/torture/basic/unlink.c
index 9e13021..5d0e4f6 100644
--- a/source4/torture/basic/unlink.c
+++ b/source4/torture/basic/unlink.c
@@ -65,7 +65,7 @@ bool torture_unlinktest(struct torture_context *tctx, struct smbcli_state *cli)
 	torture_comment(tctx, "testing unlink after ntcreatex with DELETE access\n");
 
 	io.ntcreatex.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = NTCREATEX_FLAGS_EXTENDED;
 	io.ntcreatex.in.create_options = NTCREATEX_OPTIONS_NON_DIRECTORY_FILE;
 	io.ntcreatex.in.file_attr = 0;
diff --git a/source4/torture/gentest.c b/source4/torture/gentest.c
index be02f33..3d23ad8 100644
--- a/source4/torture/gentest.c
+++ b/source4/torture/gentest.c
@@ -1819,7 +1819,7 @@ static bool handler_smb_ntcreatex(int instance)
 
 	parm[0].ntcreatex.level = RAW_OPEN_NTCREATEX;
 	parm[0].ntcreatex.in.flags = gen_ntcreatex_flags();
-	parm[0].ntcreatex.in.root_fid = gen_root_fid(instance);
+	parm[0].ntcreatex.in.root_fid.fnum = gen_root_fid(instance);
 	parm[0].ntcreatex.in.access_mask = gen_access_mask();
 	parm[0].ntcreatex.in.alloc_size = gen_alloc_size();
 	parm[0].ntcreatex.in.file_attr = gen_attrib();
@@ -1837,8 +1837,8 @@ static bool handler_smb_ntcreatex(int instance)
 	}
 	
 	GEN_COPY_PARM;
-	if (parm[0].ntcreatex.in.root_fid != 0) {
-		GEN_SET_FNUM_SMB(ntcreatex.in.root_fid);
+	if (parm[0].ntcreatex.in.root_fid.fnum != 0) {
+		GEN_SET_FNUM_SMB(ntcreatex.in.root_fid.fnum);
 	}
 	GEN_CALL_SMB(smb_raw_open(tree, current_op.mem_ctx, &parm[i]));
 
diff --git a/source4/torture/nbench/nbio.c b/source4/torture/nbench/nbio.c
index bf59408..0f811ab 100644
--- a/source4/torture/nbench/nbio.c
+++ b/source4/torture/nbench/nbio.c
@@ -487,7 +487,7 @@ static bool nb_do_createx(struct ftable *f,
 
 	io.ntcreatex.level = RAW_OPEN_NTCREATEX;
 	io.ntcreatex.in.flags = flags;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.access_mask = desired_access;
 	io.ntcreatex.in.file_attr = 0;
 	io.ntcreatex.in.alloc_size = 0;
diff --git a/source4/torture/raw/acls.c b/source4/torture/raw/acls.c
index 48dec6e..3d3aae4 100644
--- a/source4/torture/raw/acls.c
+++ b/source4/torture/raw/acls.c
@@ -57,7 +57,7 @@ static bool test_sd(struct torture_context *tctx,
 	printf("TESTING SETFILEINFO EA_SET\n");
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
 	io.ntcreatex.in.create_options = 0;
@@ -161,7 +161,7 @@ static bool test_nttrans_create(struct torture_context *tctx,
 	printf("testing nttrans create with sec_desc\n");
 
 	io.generic.level = RAW_OPEN_NTTRANS_CREATE;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
 	io.ntcreatex.in.create_options = 0;
@@ -267,7 +267,7 @@ static bool test_nttrans_create_null_dacl(struct torture_context *tctx,
 	printf("TESTING SEC_DESC WITH A NULL DACL\n");
 
 	io.generic.level = RAW_OPEN_NTTRANS_CREATE;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_STD_READ_CONTROL | SEC_STD_WRITE_DAC
 		| SEC_STD_WRITE_OWNER;
@@ -512,7 +512,7 @@ static bool test_creator_sid(struct torture_context *tctx,
 	printf("TESTING SID_CREATOR_OWNER\n");
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_STD_READ_CONTROL | SEC_STD_WRITE_DAC | SEC_STD_WRITE_OWNER;
 	io.ntcreatex.in.create_options = 0;
@@ -748,7 +748,7 @@ static bool test_generic_bits(struct torture_context *tctx,
 	printf("TESTING FILE GENERIC BITS\n");
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = 
 		SEC_STD_READ_CONTROL | 
@@ -913,7 +913,7 @@ static bool test_generic_bits(struct torture_context *tctx,
 	printf("TESTING DIR GENERIC BITS\n");
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = 
 		SEC_STD_READ_CONTROL | 
@@ -1102,7 +1102,7 @@ static bool test_owner_bits(struct torture_context *tctx,
 	printf("TESTING FILE OWNER BITS\n");
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = 
 		SEC_STD_READ_CONTROL | 
@@ -1334,7 +1334,7 @@ static bool test_inheritance(struct torture_context *tctx,
 	printf("TESTING ACL INHERITANCE\n");
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_RIGHTS_FILE_ALL;
 	io.ntcreatex.in.create_options = NTCREATEX_OPTIONS_DIRECTORY;
@@ -1655,7 +1655,7 @@ static bool test_inheritance_dynamic(struct torture_context *tctx,
 	}
 
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_RIGHTS_FILE_ALL;
 	io.ntcreatex.in.create_options = NTCREATEX_OPTIONS_DIRECTORY;
@@ -1848,7 +1848,7 @@ static bool test_sd_get_set(struct torture_context *tctx,
 	sd->type |= SEC_DESC_SACL_PRESENT;
 	sd->sacl = NULL;
 	io.ntcreatex.level = RAW_OPEN_NTTRANS_CREATE;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_GENERIC_ALL;
 	io.ntcreatex.in.create_options = 0;
diff --git a/source4/torture/raw/context.c b/source4/torture/raw/context.c
index a9d36b7..0e0851e 100644
--- a/source4/torture/raw/context.c
+++ b/source4/torture/raw/context.c
@@ -175,7 +175,7 @@ static bool test_session(struct smbcli_state *cli, struct torture_context *tctx)
 
 	printf("create a file using the new vuid\n");
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
 	io.ntcreatex.in.create_options = 0;
@@ -311,7 +311,7 @@ static bool test_tree(struct smbcli_state *cli, struct torture_context *tctx)
 
 	printf("create a file using the new tid\n");
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
 	io.ntcreatex.in.create_options = 0;
@@ -425,7 +425,7 @@ static bool test_tree_ulogoff(struct smbcli_state *cli, struct torture_context *
 
 	printf("create a file using vuid1\n");
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;
+	io.ntcreatex.in.root_fid.fnum = 0;
 	io.ntcreatex.in.flags = 0;
 	io.ntcreatex.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
 	io.ntcreatex.in.create_options = 0;
@@ -473,7 +473,7 @@ static bool test_tree_ulogoff(struct smbcli_state *cli, struct torture_context *
 
 	printf("create a file using vuid2\n");
 	io.generic.level = RAW_OPEN_NTCREATEX;
-	io.ntcreatex.in.root_fid = 0;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list