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