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 <tri...@samba.org>
Date:   Thu Oct 15 18:53:23 2009 +1100

    s4-smbserver: fixed root_fid in nttrans create

commit 4a4f420481cae5ba82a42d6763d3732defccac24
Author: Andrew Tridgell <tri...@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 <tri...@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 <tri...@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 <tri...@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 <tri...@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 <tri...@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

Reply via email to