1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00
Commit Graph

667 Commits

Author SHA1 Message Date
Tim Prouty
f38d7f20a8 s3: Add SMB_VFS_CREATE_FILE to the vfs layer
Modify all callers of create_file to go through SMB_VFS_CREATE_FILE
2008-12-03 17:50:17 -08:00
Steven Danneman
8340d100f6 Set PRESENT flag when returning NULL [SD]ACL like Windows does.
This could also be handled inside each ACL VFS module, by setting the PRESENT
flag when a NULL [SD]ACL is created.
2008-11-30 15:56:17 -08:00
Volker Lendecke
2bb90b7a88 Remove "conn" parameter from np_open, smb_request contains it 2008-11-28 10:06:32 +01:00
Volker Lendecke
2719216d60 Consolidate the buffer checks for the reply_trans style functions
This is the one where I found the problem that led to 3.2.5. So if there is one
checkin in the last year that I would like others to review and *understand*,
it is this one :-)

Volker
2008-11-28 09:22:34 +01:00
Volker Lendecke
738271fc20 Remove the variable "size" from reply_nttrans
This converts the range checks for the setup[] array to rely on req->wct being
set correctly in init_smb_request. As that already verifies the vwv array to be
in the range of the smb_request inbuf, we don't have to do overflow checks here
anymore.

Jeremy, please check thoroughly! :-)

Thanks,

Volker
2008-11-28 08:24:28 +01:00
Volker Lendecke
114f519233 Fix the offset checks in the trans routines
This fixes a potential crash bug, a client can make us read memory we
should not read. Luckily I got the disp checks right...

Volker
(cherry picked from commit 64a1d80851)
(cherry picked from commit f04c5650a3)
2008-11-27 17:19:01 +01:00
Steven Danneman
798b9e1ad6 Fix to allow setting of NULL DACL/SACL
This is a modification of Jeremy's 7522ef15ac
commit.

If no DACL/SACL is present in the packet, the SEC_INFO field should still be
passed down as is to the VFS layer to signal the creation of a NULL DACL/SACL.

As seen in metze RAW-ACL test_nttrans_create_null_dacl(), a NULL DACL is set
regardless of the SEC_DESC_DACL_PRESENT bit being set.
2008-11-23 18:30:56 -08:00
Tim Prouty
5e25f5f4f2 Fix build break 2008-11-12 21:24:00 -08:00
Jeremy Allison
6f0be6c5d5 Pretty print out SD's on get/set.
Jeremy.
2008-11-12 19:27:17 -08:00
Volker Lendecke
8315677ca3 Do not write into inbuf for the transs request
Instead, fix up the outbuf in send_xx_reply. In those routines, we know
what we are returning.
2008-11-08 10:42:29 +01:00
Volker Lendecke
807ad174b2 Remove a direct inbuf reference from reply_nttrans() 2008-11-08 10:42:28 +01:00
Volker Lendecke
87d4138d09 Converting notify.c to store a request, not an inbuf 2008-11-08 10:42:20 +01:00
Jeremy Allison
7522ef15ac Final fix to make us pass NULL SD test in RAW-ACLs. Not sure if this is 100% right. Only inheritance left to fix.
Jeremy.
2008-11-06 01:45:40 -08:00
Volker Lendecke
77f52d903f Use "vwv" in trans parsing 2008-11-02 17:46:08 +01:00
Volker Lendecke
2bab73a18d Remove a bunch of direct inbuf references by adding "vwv" to smb_request 2008-11-02 16:58:19 +01:00
Volker Lendecke
a31fab8156 Simplify params of srvstr_pull_buf_talloc()
Now that "req" is available everywhere, use it. Rename srvstr_pull_buf_talloc()
to srvstr_pull_req()
2008-11-02 09:22:40 +01:00
Volker Lendecke
2bd5ac86ff Add srvstr_get_path_req[_wcard] 2008-11-02 09:22:40 +01:00
Volker Lendecke
7bdb571ec4 Remove a bunch of direct inbuf references by adding "buf" to smb_request 2008-11-01 19:41:08 +01:00
Volker Lendecke
f87219d6e6 Move the is_known_pipename check into np_open 2008-10-25 15:23:36 +02:00
Volker Lendecke
b8b0274e03 Fix a debug message in send_nt_replies() 2008-10-22 16:15:04 +02:00
Jelmer Vernooij
4746f79d50 Use {u,}int64_t instead of SMB_BIG_{U,}INT. 2008-10-14 01:59:36 +02:00
Volker Lendecke
ac126ea818 Use "struct files_struct" for pipes instead of smb_np_struct 2008-10-13 20:59:32 +02:00
Volker Lendecke
c530009401 Pass struct smb_request to file_free
on the way to get rid of chain_fsp
2008-10-13 19:32:38 +02:00
Volker Lendecke
3bbe5e88e5 Pass struct smb_request to file_fsp
The goal is to get rid of the chain_fsp global variable
2008-10-13 19:32:37 +02:00
Volker Lendecke
80faa78a91 Fix a "nexted extern declaration" warning 2008-10-11 08:56:01 +02:00
Jeremy Allison
543c6a02ae For the vfs_acl_xattr.c module, make sure we map GENERIC file and directory bits
to specific bits every time a security descriptor is set. The S4 torture suite proves
that generic bits are not returned when querying an ACL set using them (ie. only
the specific bits are stored on disk).
Jeremy.
2008-10-08 18:06:58 -07:00
Volker Lendecke
0b31c97e82 Add some debug to reply_nttrans
(This used to be commit 23e9fed28c)
2008-09-09 17:37:34 +02:00
Volker Lendecke
d39e9e05ed Fix calculation of useable_space for trans2 and nttrans replies
When alignment was in place, we pretended to send more data/params according to
the param_offset/param_length and data_offset/data_length parameters than would
actually fit into the SMB according to the NBSS length field.
(This used to be commit ef3c132b84)
2008-09-08 23:32:22 +02:00
Stefan Metzmacher
eb8dd6a811 smbd: fix the handling of create_options to pass RAW-OPEN
Some of the bits generate INVALID_PARAMETER and some bits
are ignored when they come from a client, that's why we need
to use bits from the ignored range for our internal usage.

metze
(This used to be commit 7b4c8a4e39)
2008-08-20 15:50:26 +02:00
Volker Lendecke
2e7cb1a5cc Introduce is_known_pipename
This scans the list of pipes registered via rpc_pipe_register_commands instead
of using static tables.
(This used to be commit 283e603998)
2008-07-19 20:27:56 +02:00
Volker Lendecke
be5dc4f3c8 Remove current_user references from nttrans.c
(This used to be commit 5f8a5e68ea)
2008-06-19 18:51:38 +02:00
Volker Lendecke
52664f62ba Remove current_user references from trans2.c
This involved replacing the CHECK_NTQUOTA_HANDLE_OK macro by a function.
(This used to be commit 5595cdf837)
2008-06-19 18:51:38 +02:00
Volker Lendecke
e40b6e296a Remove the "current_user" arg from fsp_belongs_conn
fsp_belongs_conn only used the vuid struct member anyway, and this is available
in the smb_request structure as well.
(This used to be commit 64e9372ab9)
2008-06-19 18:51:37 +02:00
Volker Lendecke
49ca8efa91 Remove the "current_user" arg from check_fsp
check_fsp only used the vuid struct member anyway, and this is available in the
smb_request structure as well.
(This used to be commit 8d364c4c33)
2008-06-19 18:51:37 +02:00
Volker Lendecke
e58729f0ea Simplify fake_file logic
(This used to be commit 93111ea0a1)
2008-05-16 23:18:50 +02:00
Volker Lendecke
5bda9a8af0 Remove "user" from connection_struct
(This used to be commit 368454a27c)
2008-05-10 11:17:01 +02:00
Jeremy Allison
3f76504d92 Remove a couple of uses of SMB_VFS_GET_NT_ACL(), use
SMB_VFS_FGET_NT_ACL instead. I'd like to ultimately
remove SMB_VFS_GET_NT_ACL.
Jeremy.
(This used to be commit 4221937b68)
2008-05-09 11:14:45 -07:00
Jeremy Allison
00b2cdf75e Yay ! Remove a VFS entry. Removed the set_nt_acl() call,
this can only be done via fset_nt_acl() using an open
file/directory handle. I'd like to do the same with
get_nt_acl() but am concerned about efficiency
problems with "hide unreadable/hide unwritable" when
doing a directory listing (this would mean opening
every file in the dir on list).
Moving closer to rationalizing the ACL model and
maybe moving the POSIX calls into a posix_acl VFS
module rather than having them as first class citizens
of the VFS.
Jeremy.
(This used to be commit f487f742cb)
2008-05-08 18:09:07 -07:00
Volker Lendecke
d62563342e Remove connection_struct->mem_ctx, connection_struct is its own parent
(This used to be commit 559180f7d3)
2008-05-05 11:23:13 +02:00
Volker Lendecke
ae4159f0f7 Remove two pointless else branches
(This used to be commit ed343114cd)
2008-04-14 14:37:39 +02:00
Jeremy Allison
86e59c50f1 Rewrite the wrap checks to deal with gcc 4.x optimisations.
Karolin, please pull once Volker has reviewed. Thanks.
Jeremy.
(This used to be commit 09852899ca)
2008-04-07 21:11:16 -07:00
Stefan Metzmacher
d03453864a smbd: implement the strange write time update logic
We now never call file_ntimes() directly, every update
is done via smb_set_file_time().

This let samba3 pass the BASE-DELAYWRITE test.

The write time is only updated 2 seconds after the
first write() on any open handle to the current time
(not the time of the first write).

Each handle which had write requests updates the write
time to the current time on close().

If the write time is set explicit via setfileinfo or setpathinfo
the write time is visible directly and a following close
on the same handle doesn't update the write time.

metze
(This used to be commit 2eab212ea2)
2008-04-07 12:29:26 +02:00
Stefan Metzmacher
dc83b956b9 smbd: ignore nttrans renames as w2k3 does
This lets us pass the RAW-RENAME test.

metze

Signed-off-by: Michael Adam <obnox@samba.org>
(This used to be commit 2d50a1fef0)
2008-04-01 15:25:47 +02:00
Jeremy Allison
7d2c9c67fd Using Metze's S4 nttrans rename test, the nttrans rename
behaves the same as the trans2 one.
Jeremy.
(This used to be commit c4fa4917da)
2008-03-11 15:26:02 -07:00
Jeremy Allison
bac7b5b19e Try and fix bug #5315, as well as S4 torture tests RAW-OPLOCK BATCH19,
BATCH20 and RAW-RENAME.
Jeremy.
(This used to be commit 9065792d4b)
2008-03-11 13:27:33 -07:00
Volker Lendecke
14aa57a9e3 Don't use fname after create_file has been called
create_file calls unix_convert internally, so modifies fname. So we can't use
"fname" after create_file has returned. Use fsp->fsp_name instead.

Found during a lengthy debugging session with Karolin testing the xattr_tdb
module...
(This used to be commit 183fe57046)
2008-02-22 17:15:09 +01:00
Volker Lendecke
2411c6cb90 Add "split_ntfs_stream_name()" together with a torture test
(This used to be commit d813bd9e02)
2008-01-19 23:10:09 +01:00
Jeremy Allison
253fbf1a6e Make use of talloc_pool in the main codepaths. Remove the sub-contexts.
Jeremy.
(This used to be commit bc932b8ad4)
2008-01-09 17:11:04 -08:00
Michael Adam
05352cf2cb Remove superfluous parameter fd from SMB_VFS_FSET_NT_ACL().
Michael
(This used to be commit 4f2d139a18)
2008-01-06 23:08:00 +01:00
Michael Adam
ee24c629a6 Remove superfluous fd parameter from SMB_VFS_FGET_NT_ACL().
Michael
(This used to be commit c0c7c1223d)
2008-01-06 23:07:59 +01:00
Jeremy Allison
29562987c3 Now conn is part of smb_request, we don't need it as
an extra parameter. This cleans up quite a few places
we were passing it around without needing it.
Jeremy.
(This used to be commit 8f36def18e)
2008-01-04 15:37:24 -08:00
Jeremy Allison
9254bb4ef1 Refactor the crypto code after a very helpful conversation
with Volker. Mostly making sure we have data on the incoming
packet type, not stored in the smb header.
Jeremy.
(This used to be commit c4e5a50504)
2008-01-04 12:56:23 -08:00
Volker Lendecke
7cbdb48475 Remove tiny code duplication
ndr_size_security_descriptor does the same as sec_desc_size
(This used to be commit bc3bd7a8e7)
2007-12-29 23:13:26 +01:00
Volker Lendecke
a59280792c Remove tiny code duplication
sid_size did the same as ndr_size_dom_sid
(This used to be commit 8aec5d09ba)
2007-12-29 23:12:51 +01:00
Michael Adam
233eb0e560 Change the prototype of the vfs function get_nt_acl().
Up to now, get_nt_acl() took a files_struct pointer (fsp) and
a file name. All the underlying functions should need and now
do need (after the previous preparatory work), is a connection_struct
and a file name. The connection_struct is already there in the
vfs_handle passed to the vfs functions. So the files_struct
argument can be eliminated.

This eliminates the need of calling open_file_stat in a couple
of places to produce the fsp needed.

Michael
(This used to be commit b5f600fab5)
2007-12-19 23:08:01 +01:00
Volker Lendecke
8c6e781c3c make use of [un]marshall_sec_desc, allow for fd==-1 in get/set_secdesc
(This used to be commit 585f5f8831)
2007-12-16 14:05:30 +01:00
Volker Lendecke
900288a2b8 Replace sid_string_static by sid_string_dbg in DEBUGs
(This used to be commit bb35e794ec)
2007-12-15 22:09:36 +01:00
Volker Lendecke
a23d09081f Attempt to fix make test :-)
(This used to be commit de3a3e3745)
2007-12-07 16:00:01 +01:00
Volker Lendecke
ca4eee5bbe Pass only internal oplock request values to create_file
Other callers (e.g. reply_open_and_X) might have other ideas of the bit
shuffling
(This used to be commit 6a58d823e5)
2007-12-07 14:05:06 +01:00
Volker Lendecke
ce535b4dd8 More parameter shuffling
(This used to be commit 8f70f691ff)
2007-12-07 14:05:06 +01:00
Volker Lendecke
c55e44b6a7 Re-arrange create_file() parameters
This changes them to be a bit closer to open_file_ntcreate and thus provides
less surprises to developers
(This used to be commit d000258b96)
2007-12-07 14:05:05 +01:00
Volker Lendecke
b2ca9253e9 There's no point in passing down a 0
(This used to be commit 525a6887af)
2007-12-05 15:47:32 +01:00
Volker Lendecke
188daba1a7 Move create_file to open.c
I'm checking in this long sequence of micro-checkins for review, the overall
patch from 3b057022a5 to this is not too large.
(This used to be commit 51db8d09a4)
2007-12-05 13:45:12 +01:00
Volker Lendecke
756ce14d49 Fix an uninitialized variable
(This used to be commit ca3add2d65)
2007-12-05 13:45:12 +01:00
Volker Lendecke
14d1bd2506 Fix debug
(This used to be commit c268be54ee)
2007-12-05 13:45:12 +01:00
Volker Lendecke
bef09af757 Fix attribute calculation for ntcreate&x
(This used to be commit 9ef81cb149)
2007-12-05 13:45:12 +01:00
Volker Lendecke
aa6f0a0151 Fix error returns
(This used to be commit f5cdaacd17)
2007-12-05 13:45:12 +01:00
Volker Lendecke
72ca4a68de Fix debugs
(This used to be commit 77b31ef44a)
2007-12-05 13:45:12 +01:00
Volker Lendecke
3f1ed0fc19 Implement create_file()
Rip out the cores of reply_ntcreate_and_X and call_nt_transact_create

Volker
(This used to be commit 8cd27e4a7a)
2007-12-05 13:45:12 +01:00
Volker Lendecke
727746b8fb Reformatting, also allow quotas for transact_create
(This used to be commit 956aae7a57)
2007-12-05 13:45:12 +01:00
Volker Lendecke
db1a23586a Tiny refactorings
(This used to be commit f3421c3b86)
2007-12-05 13:45:12 +01:00
Volker Lendecke
ffeb5aaaa4 Split out sd parsing
(This used to be commit 5a9d147e41)
2007-12-05 13:45:12 +01:00
Volker Lendecke
825dddff8f Reformatting
(This used to be commit 7199416053)
2007-12-05 13:45:12 +01:00
Volker Lendecke
222cd323ca Align formatting, one TALLOC_FREE is enough
(This used to be commit 5bf4647dea)
2007-12-05 13:45:12 +01:00
Volker Lendecke
177bf9a877 Move pulling the ea list out of the way
(This used to be commit 753e640f49)
2007-12-05 13:45:11 +01:00
Volker Lendecke
adb8d1b179 Reformatting
(This used to be commit fb900184fe)
2007-12-05 13:45:11 +01:00
Volker Lendecke
629278abdf Put posix semantic calculation in the same place in both routines
(This used to be commit f6d62226a3)
2007-12-05 13:45:11 +01:00
Volker Lendecke
96a1fb4b5d Tiny refactoring
Reformatting, consolidate oplock calculation to the same place in both routines
(This used to be commit a855808f48)
2007-12-05 13:45:11 +01:00
Volker Lendecke
acaea7ece8 Tiny refactoring
(This used to be commit 481e35eba8)
2007-12-05 13:45:11 +01:00
Volker Lendecke
cb7706cf2c TALLOC_FREE early
(This used to be commit 4b1f0d1d93)
2007-12-05 13:45:11 +01:00
Volker Lendecke
692725d974 consolidate srvstr_get_path in ntcreate_and_X
(This used to be commit 4a2d502903)
2007-12-05 13:45:11 +01:00
Volker Lendecke
c6cb3ed323 Tiny refactoring
(This used to be commit b79b16d637)
2007-12-05 13:45:11 +01:00
Volker Lendecke
80287d65d0 tiny refactoring
(This used to be commit 7f15a9f5a2)
2007-12-05 13:45:11 +01:00
Volker Lendecke
5066f7c878 In nttransact_create, we also need to check for delete readonly
(This used to be commit f4cc9cab51)
2007-12-01 10:43:54 -08:00
Volker Lendecke
15953b82eb Make [f]get_nt_acl return NTSTATUS
(This used to be commit dcbe1bf942)
2007-11-13 15:47:01 +01:00
Jeremy Allison
86558e0376 Fix bug #5073. Allow "delete readonly = yes" to correctly
override deletion of a file. Fix from David Shaw <dshaw@jabberwocky.com>
Jeremy.
(This used to be commit 5d1d650d19)
2007-11-12 11:39:35 -08:00
Jeremy Allison
73d4079680 Remove the smb_read_error global variable and replace
it with accessor functions. "One global or pstring a day...." :-).
Jeremy.
(This used to be commit d50d14c300)
2007-11-03 15:12:42 -07:00
Jeremy Allison
8f1f2f04c7 Fix some cases where file_set_dosmode was being passed
False instead of NULL. Fix more of the notifications to
be correct for Samba4 RAW-NOTIFY torture (we had missed
one when calling set_ea_dos_attribute().
Jeremy.
(This used to be commit 39d265375c)
2007-10-31 15:45:45 -07:00
Jeremy Allison
30191d1a57 RIP BOOL. Convert BOOL -> bool. I found a few interesting
bugs in various places whilst doing this (places that assumed
BOOL == int). I also need to fix the Samba4 pidl generation
(next checkin).
Jeremy.
(This used to be commit f35a266b3c)
2007-10-18 17:40:25 -07:00
Jeremy Allison
e6228e2541 r25309: Volker's fix for bug #4984 - samba4 torture test
to follow. Ensure we don't prepend "./" as a root
directory - this is an invalid pathname for unix_convert().
Jeremy.
(This used to be commit f70ac2e258)
2007-10-10 12:30:58 -05:00
Volker Lendecke
ad97bcf813 r25184: Fix some C++ warnings and an uninitialized variable
(This used to be commit b64df8a3c5)
2007-10-10 12:30:49 -05:00
Jeremy Allison
eacd314057 r25138: More pstring elimination. Add a TALLOC_CTX parameter
to unix_convert().
Jeremy.
(This used to be commit 39c211a702)
2007-10-10 12:30:44 -05:00
Günther Deschner
1a292def31 r25135: Remove one END_PROFILE(SMBntcreateX) from call_nt_transact_create() which
appears to be a leftover. Should fix the build with profiling enabled.

Jeremy, please check.

Guenther
(This used to be commit 98f2e10e3f)
2007-10-10 12:30:43 -05:00
Jeremy Allison
12f61e09d9 r25117: The mega-patch Jerry was waiting for. Remove all pstrings from
the main server code paths. We should now be able to cope with
paths up to PATH_MAX length now.
Final job will be to add the TALLOC_CTX * parameter to
unix_convert to make it explicit (for Volker).
Jeremy.
(This used to be commit 7f0db75fb0)
2007-10-10 12:30:41 -05:00
Jeremy Allison
3a9d382164 r25111: Move to talloced pathnames on most code paths.
There are now ony 17 pstrings left in reply.c,
and these will be easy to remove (and I'll be
doing that shortly). Had to fix an interesting
bug in pull_ucs2_base_talloc() when a source
string is not null terminated :-).
Jeremy.
(This used to be commit 0c9a8c4dff)
2007-10-10 12:30:41 -05:00
Jeremy Allison
351eb37a25 r25102: Rewrite msdfs code to use talloced filenames. Passes make test
and make valgrindtest. Final step will be to change srvstr_get_path()
to return talloced memory in the major codepaths.
Jeremy.
(This used to be commit cf6b6f9c3a)
2007-10-10 12:30:40 -05:00
Jeremy Allison
132ee3990a r25009: Large patch discussed with Volker. Move unix_convert to a talloc-based
interface. More development will come on top of this. Remove the
"mangled map" parameter.
Jeremy.
(This used to be commit dee8beba7a)
2007-10-10 12:30:32 -05:00
Volker Lendecke
929e1d9920 r24809: Consolidate the use of temporary talloc contexts.
This adds the two functions talloc_stackframe() and talloc_tos().

 * When a new talloc stackframe is allocated with talloc_stackframe(), then
 * the TALLOC_CTX returned with talloc_tos() is reset to that new
 * frame. Whenever that stack frame is TALLOC_FREE()'ed, then the reverse
 * happens: The previous talloc_tos() is restored.
 *
 * This API is designed to be robust in the sense that if someone forgets to
 * TALLOC_FREE() a stackframe, then the next outer one correctly cleans up and
 * resets the talloc_tos().

The original motivation for this patch was to get rid of the
sid_string_static & friends buffers. Explicitly passing talloc context
everywhere clutters code too much for my taste, so an implicit
talloc_tos() is introduced here. Many of these static buffers are
replaced by a single static pointer.

The intended use would thus be that low-level functions can rather
freely push stuff to talloc_tos, the upper layers clean up by freeing
the stackframe. The more of these stackframes are used and correctly
freed the more exact the memory cleanup happens.

This patch removes the main_loop_talloc_ctx, tmp_talloc_ctx and
lp_talloc_ctx (did I forget any?)

So, never do a

tmp_ctx = talloc_init("foo");

anymore, instead, use

tmp_ctx = talloc_stackframe()

:-)

Volker
(This used to be commit 6585ea2cb7)
2007-10-10 12:30:24 -05:00
Volker Lendecke
b578db69e9 r24702: Remove the old API pointers
(This used to be commit 17df313db4)
2007-10-10 12:30:14 -05:00
Volker Lendecke
5993ddf240 r24659: Some formatting changes helping to minimize the 3_2_0 diff
(This used to be commit c5caea43af)
2007-10-10 12:30:13 -05:00
Jeremy Allison
077d5d2e36 r24498: More extra code into a function, reply_openerror.
Jeremy.
(This used to be commit 43ddfb8c91)
2007-10-10 12:29:52 -05:00
Jeremy Allison
606f10945f r24474: Map error value NT_STATUS_OBJECT_NAME_COLLISION
to ERRDOS, ERRfilexists for NTCreateX and NTTransCreate.
Jeremy.
(This used to be commit 5b2316d173)
2007-10-10 12:29:51 -05:00
Volker Lendecke
2ea14d4e98 r24433: Convert reply_ntrename to the new API
(This used to be commit 42b07a52b9)
2007-10-10 12:29:46 -05:00
Volker Lendecke
e0880fa7bd r24403: Remove reply_prep_legacy from send_nttrans_replies
(This used to be commit a6400ca6e2)
2007-10-10 12:29:40 -05:00
Volker Lendecke
f7f176dd0d r24401: Push reply_prep_legacy into send_nt_replies
(This used to be commit 489436a656)
2007-10-10 12:29:40 -05:00
Volker Lendecke
6a5bdb79e1 r24399: Change change_notify_reply to use send_nt_replies_new
(This used to be commit be67bb50ee)
2007-10-10 12:29:40 -05:00
Volker Lendecke
b41b38031f r24398: Convert call_nt_transact_notify_change to the new API
(This used to be commit 607b3ab8bc)
2007-10-10 12:29:40 -05:00
Volker Lendecke
bba684f2c0 r24394: Convert call_nt_transact_rename to the new API
(This used to be commit 189876a664)
2007-10-10 12:29:39 -05:00
Volker Lendecke
4f111b6e78 r24393: Convert call_nt_transact_set_user_quota to the new API
(This used to be commit 4cb60abd4c)
2007-10-10 12:29:39 -05:00
Volker Lendecke
4b485d807e r24391: Convert call_nt_transact_get_user_quota to the new API
(This used to be commit 0e47a6643e)
2007-10-10 12:29:39 -05:00
Volker Lendecke
6624bf7fd2 r24385: Convert call_nt_transact_query_security_desc to the new API
(This used to be commit f44e0aac2b)
2007-10-10 12:29:38 -05:00
Volker Lendecke
ff355558e3 r24384: Convert call_nt_transact_set_security_desc to the new API
(This used to be commit 925ed1e186)
2007-10-10 12:29:38 -05:00
Volker Lendecke
89dfa3883f r24383: Convert call_nt_transact_ioctl to the new API
(This used to be commit 8e6485e078)
2007-10-10 12:29:38 -05:00
Volker Lendecke
89f27bb35b r24382: Remove reply_prep_legacy from call_nt_transact_create
(This used to be commit 73392485f4)
2007-10-10 12:29:37 -05:00
Volker Lendecke
8590265e94 r24381: Push reply_prep_legacy into call_nt_transact_create
(This used to be commit ca18ba96be)
2007-10-10 12:29:37 -05:00
Volker Lendecke
20b3daec50 r24368: Push down reply_prep_legacy one level
Not pretty, but necessary to convert the calls one by one
(This used to be commit 523a463be4)
2007-10-10 12:29:37 -05:00
Volker Lendecke
1b034a8f9e r24367: Push reply_prep_legacy into handle_nttrans
(This used to be commit 8b5e51c266)
2007-10-10 12:29:37 -05:00
Volker Lendecke
1d8e64aece r24361: Push reply_prep_legacy down in reply_nttrans[s]
(This used to be commit d97a2e91d3)
2007-10-10 12:29:36 -05:00
Volker Lendecke
6216cd58c2 r24359: Fix the build
(This used to be commit b2ac1a3ec5)
2007-10-10 12:29:36 -05:00
Volker Lendecke
6bee410431 r24358: Push reply_prep_legacy into reply_nttrans[s]
(This used to be commit 197c231079)
2007-10-10 12:29:36 -05:00
Volker Lendecke
ecb32af916 r24357: Check wct in reply_nttrans[s]
(This used to be commit 9ab87e644e)
2007-10-10 12:29:35 -05:00
Volker Lendecke
2d8e4456cd r24356: Add send_nt_replies_new wrapper
(This used to be commit 8a910d37cc)
2007-10-10 12:29:35 -05:00
Stefan Metzmacher
5cc4dbd449 r24312: revision 24091 removed the 'FORCE'...
metze
(This used to be commit 34d821daf0)
2007-10-10 12:29:27 -05:00
Stefan Metzmacher
c25f22562e r24310: we should not call END_PROFILE(SMBntcreateX); twice...
metze
(This used to be commit 7a98e09f2e)
2007-10-10 12:29:27 -05:00
Volker Lendecke
d18b7b1223 r24254: Fix a segfault in r24102
The really pure bugfix would have replaced pparam by *pparam, but we pulled
the fid anyway.

Metze, in line 2421 the FSP_BELONGS_CONN is commented out, is that intended?
The FSCTL_CREATE_OR_GET_OBJECT_ID ioctl did not have it.

Volker
(This used to be commit 2c1376225b)
2007-10-10 12:29:21 -05:00
Volker Lendecke
fe92fdc67d r24145: Fix a comment
(This used to be commit 34a00d8aa9)
2007-10-10 12:29:13 -05:00
Volker Lendecke
6c6fed5e65 r24130: Explicitly pass flags2 to srvstr_push
This is in preparation of the trans2 conversion: srvstr_push should not
look at inbuf directly.
(This used to be commit 5fd7e6a382)
2007-10-10 12:29:09 -05:00
Volker Lendecke
a2d6aa829f r24102: Pass the fid instead of inbuf and an offset to file_fsp.
This removes the buf==NULL condition in file_fsp(), but wherever it is called
we do have a buffer anyway.

Volker
(This used to be commit d70a1f82fe)
2007-10-10 12:29:07 -05:00
Volker Lendecke
4473a5ec54 r24100: Convert reply_ntcancel to the new API
(This used to be commit 6e5f39379f)
2007-10-10 12:29:06 -05:00
Volker Lendecke
ae5da66e23 r24097: Convert reply_ntcreate_and_X_quota to the new API
(This used to be commit 08acadae56)
2007-10-10 12:29:06 -05:00
Volker Lendecke
04dcbbbd68 r24092: Convert do_ntcreate_pipe_open to the new API
nt_open_pipe_new() is a copy of nt_open_pipe(). It will stick for a bit
until do_nt_transact_create_pipe is converted as well.
(This used to be commit 247d6baaed)
2007-10-10 12:29:05 -05:00
Volker Lendecke
d95725370f r24091: Convert reply_ntcreate_and_X to the new API
The routines called will follow
(This used to be commit 28025fc17e)
2007-10-10 12:29:05 -05:00
Volker Lendecke
5e9d12cd30 r24090: Separate parsing in reply_ntcreate_and_X
In particular, check if we have enough parameters
(This used to be commit 7a19b3071e)
2007-10-10 12:29:05 -05:00
Volker Lendecke
cc6a41017c r23997: Check in the infrastructure for getting rid of the global InBuffer/OutBuffer
The complete history of this patch can be found under
http://www.samba.org/~vlendec/inbuf-checkin/.

Jeremy, Jerry: If possible I would like to see this in 3.2.0. I'm only
checking into 3_2 at the moment, as it currently will slow down operations for
all non-converted (i.e. all at this moment) operations, as it will copy the
talloc'ed inbuf over the global InBuffer. It will need quite a bit of effort
to convert everything necessary for the normal operations an XP box does.

I have patches for negprot, session setup, tcon_and_X, open_and_X, close. More
to come, but I would appreciate some help here.

Volker
(This used to be commit 5594af2b20)
2007-10-10 12:28:53 -05:00
Jeremy Allison
ed9e0d9a3a r23939: Fixes for notify returns. Returned param value must fix inside
max_param or return NT_STATUS_OK.
Jeremy.
(This used to be commit ab4af60d1a)
2007-10-10 12:28:47 -05:00
Volker Lendecke
5e8590753c r23903: Fix a potential reason for the segfault Steve found
(This used to be commit c06bc91085)
2007-10-10 12:28:40 -05:00
Andrew Tridgell
5e54558c6d r23784: use the GPLv3 boilerplate as recommended by the FSF and the license text
(This used to be commit b0132e94fc)
2007-10-10 12:28:22 -05:00
Jeremy Allison
d824b98f80 r23779: Change from v2 or later to v3 or later.
Jeremy.
(This used to be commit 407e6e695b)
2007-10-10 12:28:20 -05:00
Volker Lendecke
5daa21f558 r23768: Get rid of the three global variables for the case semantics. I think
this is really not worth globals.

Jeremy, please check for 3.0.26.
(This used to be commit 6e655500c0)
2007-10-10 12:23:55 -05:00
Volker Lendecke
c13f62a675 r23765: Another error-path restore_case_semantics().
(This used to be commit a3e5fe1693)
2007-10-10 12:23:54 -05:00
Volker Lendecke
a3f69f3710 r23764: Do restore_case_semantics in an error path. Jeremy, please check!
(This used to be commit 3b5422c9a4)
2007-10-10 12:23:54 -05:00
Volker Lendecke
ead70dc92e r23761: Rename reduce_name to check_reduced_name
The function name reduce_name is misleading, making the user believe it
changes an argument.
(This used to be commit 68234f0bc6)
2007-10-10 12:23:53 -05:00
Volker Lendecke
0e43c1e80d r23738: Re-add commented out code snipped that got lost by accident
(This used to be commit c38c31afb7)
2007-10-10 12:23:50 -05:00
Volker Lendecke
8724dfe551 r23727: Explicitly pass down FLAGS2 to srvstr_get_path.
Next step is to remove the bug that in the trans2 code we use the inbuf
as the base pointer to decide whether we need ucs2 alignment where we
need to use the beginning of the params buffer

Jeremy, last one for today to reviw :-)
(This used to be commit 18078b9faa)
2007-10-10 12:23:49 -05:00
Volker Lendecke
fcda5b5896 r23726: Explicitly pass down the FLAGS2 field to srvstr_pull_buf. The next
checkin will pull this up to srvstr_get_path. At that point we can get more
independent of the inbuf, the base_ptr in pull_string will only be used
to satisfy UCS2 alignment constraints.
(This used to be commit 836782b07b)
2007-10-10 12:23:49 -05:00
Volker Lendecke
0bc56a2e5f r23724: Reduce access to the global inbuf a tiny bit. Add a struct smb_request
that contains some of the fields from the SMB header, removing the need
to access inbuf directly. This right now is used only in the open file
code & friends, and creating that header is only done when needed. This
needs more work, but it is a start.

Jeremy, I'm only checking this into 3_0, please review before I merge it
to _26.

Volker
(This used to be commit ca988f4e79)
2007-10-10 12:23:48 -05:00
Jeremy Allison
a49b2ea9c8 r23640: When we support the SeSecurity privilage, this is where
we'll check it.
Jeremy.
(This used to be commit 1b73bf79f4)
2007-10-10 12:23:40 -05:00
Jeremy Allison
a0ac7a7f4c r23620: Convert set_nt_acl to return NTSTATUS. Also fix the chown
return to correctly return NT_STATUS_INVALID_OWNER if it
should be disallowed. Matches better what W2K3R3 does.

NFSv4 ACL module owners, please examine these changes.

Jeremy.
(This used to be commit fc6899a550)
2007-10-10 12:23:37 -05:00
James Peach
b1ce226af8 r23510: Tidy calls to smb_panic by removing trailing newlines. Print the
failed expression in SMB_ASSERT.
(This used to be commit 171dc060e2)
2007-10-10 12:23:23 -05:00
Jeremy Allison
28bc066aa8 r23450: max_params_return is complete fiction when getting a changenotify
request. Ignore it. Should fix bug #4689 but more tests and
valgrinding will follow.
Jeremy.
(This used to be commit c23e08cc09)
2007-10-10 12:23:17 -05:00
Jeremy Allison
72e76cb90b r23346: Fix offline caching with XP/Vista. It was an off-by-one
in storing the access mask. I shouldn't have made this
mistake. Damn. Fixes bug #4673.
Jeremy
(This used to be commit 84801d4e83)
2007-10-10 12:23:08 -05:00
Gerald Carter
403684f7bd r23206: remove unreachable code
(This used to be commit 6e2bb4836f)
2007-10-10 12:22:54 -05:00
Volker Lendecke
e8156439f2 r23183: Check in a change made by Tridge:
This replaces the internal explicit dev/ino file id representation by a
"struct file_id". This is necessary as cluster file systems and NFS
don't necessarily assign the same device number to the shared file
system. With this structure in place we can now easily add different
schemes to map a file to a unique 64-bit device node.

Jeremy, you might note that I did not change the external interface of
smb_share_modes.c.

Volker
(This used to be commit 9b10dbbd5d)
2007-10-10 12:22:52 -05:00
Jeremy Allison
12ba88574b r22542: Move over to using the _strict varients of the talloc
calls. No functional changes. Looks bigger than it is :-).
Jeremy.
(This used to be commit f6fa3080fe)
2007-10-10 12:19:44 -05:00
Jeremy Allison
4742fa9366 r22492: Add objectid code.
Jeremy.
(This used to be commit d3df922038)
2007-10-10 12:19:39 -05:00
Jeremy Allison
0829e1ad1c r22391: Looks bigger than it is. Make "inbuf" available
to all callers of smb_setlen (via set_message()
calls). This will allow the server to reflect back
the correct encryption context.
Jeremy.
(This used to be commit 2d80a96120)
2007-10-10 12:19:30 -05:00
Jeremy Allison
6a3e72aa69 r22129: Fix the nttrans create extended response for pipes
and files (tested with Win32 code). Bug #4404 should
now be dead :-).
Jeremy.
(This used to be commit 40a86a5666)
2007-10-10 12:19:15 -05:00
Jeremy Allison
2ca369e0a6 r22128: Fix the pipe open response with EXTENDED_RESPONSE_REQUIRED
set. Only the NTTrans create left to fix for csc.
Jeremy.
(This used to be commit 7856db9fce)
2007-10-10 12:19:15 -05:00
Jeremy Allison
8710c0ddd2 r22124: Wow - NTCreateX sets the word count to 42, but returns 50 on
the wire. Strange.... But now we're returning Windows compatible
extended info. Next to fix the pipe returns and NTTrans Creates.
Jeremy.
(This used to be commit 57e46f2f80)
2007-10-10 12:19:14 -05:00
Jeremy Allison
bd472a542a r22123: Try and fix the csc (#4404) bug by supporting the extended
response to NTCreateX - need to fix this also for
pipe open and NTTransCreate as well so this isn't
finished.
Jeremy.
(This used to be commit be742f2481)
2007-10-10 12:19:14 -05:00
Stefan Metzmacher
56ba447668 r22001: change prototype of dump_data(), so that it takes unsigned char * now,
which matches what samba4 has.

also fix all the callers to prevent compiler warnings

metze
(This used to be commit fa322f0cc9)
2007-10-10 12:18:59 -05:00
Jeremy Allison
24cdd7c733 r21800: Check-in the DFS rewrite. I am still testing this but it
works from smbclient and Windows, and I am promising to
support and fix both client and server code moving forward.
Still need to test the RPC admin support but I haven't
changed that code.
Jeremy.
(This used to be commit 7a7862c01d)
2007-10-10 12:18:34 -05:00
Jeremy Allison
7b2c2e4155 r21754: Volker is completely correct. There's no need for
the RESOLVE_DFSPATH macros and their varients
any more. Fix reporting profile bug with all
error returns.
Jeremy.
(This used to be commit cdf0fdb104)
2007-10-10 12:18:28 -05:00
Volker Lendecke
062a22be47 r21748: More cosmetic alignment. One change to call_nt_transact_create(): We were
asking open_file_ntcreate for a batch oplock if the client asked us to do so,
even if it did not ask for an oplock in the first place. Did not test it, but
I think this is bogus anyway.

Volker
(This used to be commit 0b94af112b)
2007-10-10 12:18:27 -05:00
Volker Lendecke
5309fd6d13 r21747: Cosmetic checkin to bring ntcreate and nttranscreate closer together
(This used to be commit ecc781f1a2)
2007-10-10 12:18:27 -05:00
Jeremy Allison
4952fe368a r21714: Change the VFS interface to use struct timespec
for utimes - change the call to ntimes. This preserves
nsec timestamps we get from stat (if the system supports
it) and only maps back down to usec or sec resolution
on time set. Looks bigger than it is as I had to move
lots of internal code from using time_t and struct utimebuf
to struct timespec.
Jeremy.
(This used to be commit 8f3d530c5a)
2007-10-10 12:18:24 -05:00
Jeremy Allison
10ab7a3a78 r21672: The cannonical file access pattern should look like this :
srvstr_get_path(inbuf, name, smb_buf(inbuf) + 1, sizeof(name), 0, STR_TERMINATE, &status);
	if (!NT_STATUS_IS_OK(status)) {
		return ERROR_NT(status);
	}

	RESOLVE_DFSPATH(name, conn, inbuf, outbuf);

	status = unix_convert(conn, name, False, NULL, &sbuf);
	if (!NT_STATUS_IS_OK(status)) {
		return ERROR_NT(status);
	}

	status = check_name(conn, name);
	if (!NT_STATUS_IS_OK(status)) {
		return ERROR_NT(status);
	}

Make sure that every access pattern (including the
wildcard generated paths from unlink, rename, and copy)
do the same. Tidy things up a bit....

Jeremy.
(This used to be commit b8327b21dd)
2007-10-10 12:18:23 -05:00
Jeremy Allison
7a5fa7f12e r21191: Add in the POSIX open/mkdir/unlink calls.
Move more error code returns to NTSTATUS.
Client test code to follow... See if this
passes the build-farm before I add it into
3.0.25.
Jeremy.
(This used to be commit 83dbbdff34)
2007-10-10 12:17:47 -05:00
Volker Lendecke
0d0e322d4d r21123: Make notify_fsp() static to notify.c.
Volker
(This used to be commit d663b729c0)
2007-10-10 12:17:41 -05:00
Volker Lendecke
fd0f2e20ee r21121: Fix error message, based on RAW-NOTIFY
(This used to be commit 2d0a0a0b34)
2007-10-10 12:17:40 -05:00
Volker Lendecke
2852ecc67e r21092: Ok, that's the one that activates the Samba4 notify backend.
Now to clean up / fix lots of stuff.

Volker
(This used to be commit 9e7443fa14)
2007-10-10 12:17:36 -05:00
Herb Lewis
109bebe1f8 r21002: Get rid of unused macros - merge change from 3_0_24
(This used to be commit 9d23cf0cc4)
2007-10-10 12:17:25 -05:00
Volker Lendecke
d5206610cd r20931: This changes the notify infrastructure from a polling-based to an event-driven
based approach. The only remaining hook into the backend is now

	void *(*notify_add)(TALLOC_CTX *mem_ctx,
			    struct event_context *event_ctx,
			    files_struct *fsp, uint32 *filter);

(Should we put this through the VFS, so that others can more easily plug in?)

The trick here is that the backend can pick filter bits that the main smbd
should not handle anymore. Thanks to tridge for this idea.

The backend can notify the main smbd process via

void notify_fsp(files_struct *fsp, uint32 action, char *name);

The core patch is not big, what makes this more than 1800 lines are the
individual backends that are considerably changed but can be reviewed
one by one.

Based on this I'll continue with inotify now.

Volker
(This used to be commit 9cd6a8a827)
2007-10-10 12:17:21 -05:00
Volker Lendecke
00deaa584c r20878: Fix build with --enable-profiling
(This used to be commit eb14d0ea83)
2007-10-10 12:17:17 -05:00
Jeremy Allison
fd37f98158 r20873: Some correctness fixes w.r.t. Samba4 torture BASE-DELETE.
Allow us to correctly refuse to set delete on close on a
non-empty directory. There are still some delete-on-close
wrinkles to be fixed, but I understand how to do that better
now. I'll fix this tomorrow.
Jeremy.
(This used to be commit 0296358858)
2007-10-10 12:17:16 -05:00
Volker Lendecke
940192ddcc r20854: Ok, now I think we're at a point where looking at notify starts to make sense
again :-)

Volker
(This used to be commit 5533cdeec1)
2007-10-10 12:17:13 -05:00
Jeremy Allison
83eb0d1d6d r20844: Somewhat radical change - this may break the build (I will
watch carefully - so I'm doing it in one transaction so I can
roll back).

Change check_name(), reduce_name() and dptr_create() to
return NTSTATUS. This helps a lot in error path processing
and especially in reduce_name() allows us to ditch the flaky
and error-prone saving of errno and return errors directly.

Jeremy.
(This used to be commit 6133a694aa)
2007-10-10 12:17:12 -05:00
Jeremy Allison
916342d04b r20781: Fix a couple of paths found by Volker where we weren't
correctly handling deferred opens.
Jeremy.
(This used to be commit e47b79d1ce)
2007-10-10 12:17:08 -05:00
Jeremy Allison
67b0f18f62 r20724: Get closer to passing RAW-OPEN. If the client is using
create disposition of FILE_CREATE then there's no need
to check can_delete_file_in_directory().
Jeremy.
(This used to be commit eb32b60efc)
2007-10-10 12:17:07 -05:00
Jeremy Allison
db0ad252a0 r20718: Sync up the filename path parsing changes from SAMBA_3_0_24.
The only difference between the two trees now w.r.t file
serving are the changes to smbd/open.c in this branch I need
to review.
Jeremy.
(This used to be commit f4474edf6a)
2007-10-10 12:17:04 -05:00
Volker Lendecke
46fdae1b6b r20634: A *LOT* more work is necessary before touching notify remotely starts to make
sense. Until then, remove it from the tree to keep the diff between 3_0_24 and
3_0 small.

Volker
(This used to be commit f146a85e74)
2007-10-10 12:17:00 -05:00
Volker Lendecke
d10af02226 r20612: A checkin I've wanted to do for ages: For bad_path==False set_bad_path_error
is equivalent to UNIX_ERROR. Expand the last reference. Lets see if I can kill
that as well :-)

Volker
(This used to be commit 794d5d38f1)
2007-10-10 12:16:58 -05:00
Volker Lendecke
283c690e6e r20611: All but one callers to set_bad_path_error have had the bad_path==True argument
being handled further up.

Volker
(This used to be commit 358673c366)
2007-10-10 12:16:58 -05:00
Volker Lendecke
2c1b3a0720 r20470: Jeremy, another one to check:
The only error path of can_delete() that we're interested in ntcreate&x is the
one of can_delete_file_in_directory(), so call that directly.

The only other one where we might get a NT_STATUS_ACCESS_DENIED is from the
lstat in can_delete, but this is covered later in the open_directory and
open_file_ntcreate calls. open_directory does a stat() in the open case which
also covers the (potential) symlink, and open_file_ntcreate does the open(2)
itself, so this should also work.

This makes can_delete() static to reply.c.

Volker
(This used to be commit d289037fdb)
2007-10-10 12:16:51 -05:00
Volker Lendecke
3c4342ddfb r20465: Get rid of a redundant !NT_STATUS_IS_OK(status)
(This used to be commit ff173995cf)
2007-10-10 12:16:51 -05:00
Volker Lendecke
92d02f7afe r20451: Survive the first of the filter-tests (mkdir).
Add lots of TODOs :-)

Volker
(This used to be commit 0e953884a1)
2007-10-10 12:16:50 -05:00
Volker Lendecke
200bd10b32 r20442: Slight rewrite of the change notify infrastructure. This now survives the
first of the raw-notify subtests, the one-level test_notify_dir without any
flags around yet.

The tricky part was getting the data structures right, I hope the next tests
don't let that fall over.

fsp->notify is now by default NULL, meaning that nobody has issued a
changenotify call. This means nobody is interested in changes for this
directory.

If that has happened, notify_change_buf collects the changes if no current
request is outstanding, and it collects the requests if no change has happened
since the last request.

Happy New Year, somewhere on this planet it's already 2007 :-)

Volker

P.S: Jeremy, there's a question for you in smbd/files.c line 367.
(This used to be commit ce0ad24988)
2007-10-10 12:16:50 -05:00
Volker Lendecke
165f5f3f40 r20433: Work in progress: Survive more of RAW-NOTIFY.
call_nt_transact_notify_change() is now sync if there are changes around.

A notify_message does a direct reply from within the message, so
process_pending_change_notify_queue is not needed anymore for samba-generated
events. Next step is to restructure the kernel-mechanisms to generate
messages.

Volker
(This used to be commit c813f71d00)
2007-10-10 12:16:49 -05:00
Volker Lendecke
98c082489b r20394: This is a *VERY* early start of my work on notify.
Checking in because Jeremy was bugging me. Potentially this becomes quite
intrusive, I'm not sure if I should open a temporary branch for this.

Jeremy, Jerry, do you think 3_0 is the right place for this?

Volker
(This used to be commit bcf5c751cb)
2007-10-10 12:16:46 -05:00
Jeremy Allison
48c3f76b2e r20372: Make NTrename the same as SMBmv w.r.t. wildcards.
Jeremy.
(This used to be commit b8d5faac69)
2007-10-10 12:16:45 -05:00
Jeremy Allison
b26a9ad9df r20363: Fix any possible valgrind errors in srvstr_get_XX or srvstr_pull_XX
by ensuring we pass in a valid src_len (or zero when appropriate).
Volker is correct in that this is a *horrible* interface and he is
now free to generally clean it up everywhere :-). Go for it Volker !
Jeremy.
(This used to be commit cd991fb839)
2007-10-10 12:16:44 -05:00
Volker Lendecke
8cd9636458 r20356: Consolidate the calls to parent_dirname() per open to one.
This involved passing the dirname as argument to a few routines instead of
calling parent_dirname() deep down.

Volker
(This used to be commit 7977fd7865)
2007-10-10 12:16:43 -05:00
Volker Lendecke
96a2972bd2 r20345: Simplify call_nt_transact_create by using tmp_talloc_ctx()
(This used to be commit df6362baa0)
2007-10-10 12:16:43 -05:00
Volker Lendecke
469b42c61f r20338: Restructure open_directory a bit. This gets rid of a race condition regarding
error messages: We relied upon a stat that a directory did not exist to later
on then do the mkdir or not. This does the mkdir directly and copes with a
potential error.

The second one is more important: It's possible with Samba 3 to do a
ntcreate&x with NTCREATEX_OPTIONS_DIRECTORY and we happily do a NT_STATUS_OK.

Also move up the use_nt_status() logic a bit. I think this does not belong
into the core routines, the smb server as such should take care of it.

Jeremy, do you think this should go to 3.0.24?

I'll update samba4torture when the build farm has picked up this checkin.

Volker
(This used to be commit 472fb11f49)
2007-10-10 12:16:42 -05:00
Volker Lendecke
b596d6a111 r20335: Port oplock return logic from ntcreate&x to NT_TRANSACT_CREATE. Fixes parts of
raw-open.

Volker
(This used to be commit e4e766c092)
2007-10-10 12:16:42 -05:00
James Peach
5bb49b08f3 r20237: Replace exit_server with exit_server_cleanly where appropriate. All
send_smb failures should be clean exits. All times when we exit as
a matter of policy should also be clean exits.
(This used to be commit d6382092e7)
2007-10-10 12:16:34 -05:00
Volker Lendecke
e9a2b265e7 r20211: send_nt_replies does not need the inbuf arg
(This used to be commit ab45c50da3)
2007-10-10 12:16:32 -05:00
Jeremy Allison
d29722e378 r20178: Ensure we allocate the intermediate trans structs
off conn->mem_ctx, not the null context so we can
safefy free everything on conn close. Should fix
possible memleak.
Jeremy.
(This used to be commit b33bde7b39)
2007-10-10 12:16:29 -05:00
Herb Lewis
791f48f167 r20124: clean up nested extern declaration warnings
(This used to be commit ac3eb7813e)
2007-10-10 12:16:26 -05:00
Volker Lendecke
c9cea2d624 r19001: Fix comment
(This used to be commit 048127f9dd)
2007-10-10 12:14:55 -05:00
Gerald Carter
eab57a0a0f r18789: Replace the winreg server code with the libndr parsing code.
Many things work (OpenHKLM, etc...) but some still don't.
This shouldn't block anyone so I'm checking it in.
Will probably move to a bzr tree after this for
longer dev cycles between checkins.
(This used to be commit cf1404a0d7)
2007-10-10 12:00:57 -05:00
Jelmer Vernooij
4db7642caa r18745: Use the Samba4 data structures for security descriptors and security descriptor
buffers.

Make security access masks simply a uint32 rather than a structure
with a uint32 in it.
(This used to be commit b41c52b9db)
2007-10-10 12:00:54 -05:00
Stefan Metzmacher
258a465e20 r18605: sync dlinklist.h with samba4, that means DLIST_ADD_END()
and DLIST_DEMOTE() now take the type of the tmp pointer
not the tmp pointer itself anymore.

metze
(This used to be commit 2f58645b70)
2007-10-10 11:51:59 -05:00
Jeremy Allison
a64925ddff r17800: Start using struct timespec internally for file times
on the wire. This allows us to go to nsec resolution
for systems that support it. It should also now be
easy to add a correct "create time" (birth time)
for systems that support it (*BSD). I'll be watching
the build farm closely after this one for breakage :-).
Jeremy.
(This used to be commit 425280a1d2)
2007-10-10 11:38:48 -05:00
Volker Lendecke
e23781b3b3 r17316: More C++ warnings -- 456 left
(This used to be commit 1e4ee728df)
2007-10-10 11:38:25 -05:00
Jeremy Allison
fbdcf2663b r16945: Sync trunk -> 3.0 for 3.0.24 code. Still need
to do the upper layer directories but this is what
everyone is waiting for....

Jeremy.
(This used to be commit 9dafb7f48c)
2007-10-10 11:19:14 -05:00
Jeremy Allison
ce61fb21d9 r16397: Fix Klocwork #11767 and drasticly simplify the
logic in smbd/process.c. All interested (Volker,
Jerry, James etc). PLEASE REVIEW THIS CHANGE.
The logic should be identical but *much* easier
to follow and change (and shouldn't confuse Klockwork :-).
Jeremy.
(This used to be commit d357f8b335)
2007-10-10 11:18:52 -05:00
Jeremy Allison
b85b18d794 r16311: Check for NULL return. Klocwork #998.
Jeremy.
(This used to be commit c430730f5a)
2007-10-10 11:17:33 -05:00
Jeremy Allison
4b6fef6b6a r16295: Fix gcc4 "warning: dereferencing type-punned pointer will break
strict-aliasing rules" warning.
Jeremy.
(This used to be commit 7ac5aee88c)
2007-10-10 11:17:32 -05:00
Jeremy Allison
17e1b83996 r16277: Start fixing up gcc4 -O6 warnings on an x86_64 box. size_t != unsigned int
in a format string.
Jeremy.
(This used to be commit 3a15fff219)
2007-10-10 11:17:30 -05:00
Jeremy Allison
41f139c0bb r15949: Patch for bug #3308 to stop us returning duplicate
mid replies on path based set-eof trans2 calls.
Needs modification for HEAD (as in head open_file_ntcreateX
properly returns NTSTATUS - I'll fix this tomorrow my
time). Secondly it still fails the Samba4 RAW-OPLOCK
smbtorture because of an interesting case. Our oplock
code always returns "break to level 2" if it can.
In this case (path-based set-eof or set-allocation size
on an exclusive oplocked file) W2K3 always sends a
break-to-none. We send the break to none (from level2)
after we've done the write for eof or allocation size.
I need to work out some way of telling our break code
to always break to none (might need to extend the message
field).
Jeremy.
(This used to be commit ad9895c654)
2007-10-10 11:17:14 -05:00
James Peach
0a1ca7fa3d r15943: Update misleading DEBUG statements and comments that refer to
open_file_shared.
(This used to be commit 784126edff)
2007-10-10 11:17:14 -05:00
James Peach
4d55a81958 r15450: Change profiling data macros to use stack variables rather than
globals. This catches mismatched start/end calls and removes
the need for special nested profiling calls.
(This used to be commit ee75049881)
2007-10-10 11:16:47 -05:00
Volker Lendecke
1ca61f4748 r15266: Fix bug 3720. I wonder why -O1 compiles did not catch this...
Thanks to Jason Mader for reporting this.

Volker
(This used to be commit 3e616c3272)
2007-10-10 11:16:30 -05:00
Jeremy Allison
fc13f28417 r15030: On a performace hunt... Remove as many extraneous
memset's as possible.
Jeremy.
(This used to be commit 1217ed392b)
2007-10-10 11:15:58 -05:00
Jeremy Allison
22dbd67708 r15018: Merge Volker's ipc/trans2/nttrans changes over
into 3.0. Also merge the new POSIX lock code - this
is not enabled unless -DDEVELOPER is defined.
This doesn't yet map onto underlying system POSIX
locks. Updates vfs to allow lock queries.
Jeremy.
(This used to be commit 08e52ead03)
2007-10-10 11:15:57 -05:00
Jeremy Allison
894358a8f3 r13915: Fixed a very interesting class of realloc() bugs found by Coverity.
realloc can return NULL in one of two cases - (1) the realloc failed,
(2) realloc succeeded but the new size requested was zero, in which
case this is identical to a free() call.

The error paths dealing with these two cases should be different,
but mostly weren't. Secondly the standard idiom for dealing with
realloc when you know the new size is non-zero is the following :

 tmp = realloc(p, size);
 if (!tmp) {
    SAFE_FREE(p);
    return error;
 } else {
    p = tmp;
 }

However, there were *many* *many* places in Samba where we were
using the old (broken) idiom of :

 p = realloc(p, size)
 if (!p) {
    return error;
 }

which will leak the memory pointed to by p on realloc fail.

This commit (hopefully) fixes all these cases by moving to
a standard idiom of :

 p = SMB_REALLOC(p, size)
 if (!p) {
    return error;
 }

Where if the realloc returns null due to the realloc failing
or size == 0 we *guarentee* that the storage pointed to by p
has been freed. This allows me to remove a lot of code that
was dealing with the standard (more verbose) method that required
a tmp pointer. This is almost always what you want. When a
realloc fails you never usually want the old memory, you
want to free it and get into your error processing asap.

For the 11 remaining cases where we really do need to keep the
old pointer I have invented the new macro SMB_REALLOC_KEEP_OLD_ON_ERROR,
which can be used as follows :

 tmp = SMB_REALLOC_KEEP_OLD_ON_ERROR(p, size);
 if (!tmp) {
    SAFE_FREE(p);
    return error;
 } else {
    p = tmp;
 }

SMB_REALLOC_KEEP_OLD_ON_ERROR guarentees never to free the
pointer p, even on size == 0 or realloc fail. All this is
done by a hidden extra argument to Realloc(), BOOL free_old_on_error
which is set appropriately by the SMB_REALLOC and SMB_REALLOC_KEEP_OLD_ON_ERROR
macros (and their array counterparts).

It remains to be seen what this will do to our Coverity bug count :-).

Jeremy.
(This used to be commit 1d710d06a2)
2007-10-10 11:10:59 -05:00
Gerald Carter
0af1500fc0 r13316: Let the carnage begin....
Sync with trunk as off r13315
(This used to be commit 17e63ac4ed)
2007-10-10 11:06:23 -05:00
Jeremy Allison
d14af63e6a r13293: Rather a big patch I'm afraid, but this should fix bug #3347
by saving the UNIX token used to set a delete on close flag,
and using it when doing the delete. libsmbsharemodes.so still
needs updating to cope with this change.
Samba4 torture tests to follow.
Jeremy.
(This used to be commit 23f16cbc2e)
2007-10-10 11:06:21 -05:00
Jeremy Allison
c4ccc8f37e r12491: End profile fixes from SATOH Fumiyasu <fumiya@samba.gr.jp>.
Jeremy.
(This used to be commit 2187502732)
2007-10-10 11:05:58 -05:00
Jeremy Allison
6baec64a73 r11420: Fix issue pointed out by Dina Fine <dina@exanet.com>. We can
only tell at parse time from the wire if an incoming name
has wildcards or not. If it's a mangled name and we demangle
the demangled name may contain wildcard characters. Ensure
these are ignored.
Jeremy.
(This used to be commit 4cd8e2a96b)
2007-10-10 11:05:15 -05:00
Gerald Carter
54abd2aa66 r10656: BIG merge from trunk. Features not copied over
* \PIPE\unixinfo
* winbindd's {group,alias}membership new functions
* winbindd's lookupsids() functionality
* swat (trunk changes to be reverted as per discussion with Deryck)
(This used to be commit 939c3cb5d7)
2007-10-10 11:04:48 -05:00
Jeremy Allison
af8a691db1 r8219: Merge the new open code from HEAD to 3.0. Haven't yet run the torture
tests on this as it's very late NY time (just wanted to get this work
into the tree). I'll test this over the weekend....
Jerry - in looking at the difference between the two trees there
seem to be some printing/ntprinting.c and registry changes we might
want to examine to try keep in sync.
Jeremy.
(This used to be commit c7fe18761e)
2007-10-10 10:58:18 -05:00
Jeremy Allison
7e509e9b99 r7842: With the patch I sent Steve yesterday this gives us complete POSIX pathnames.
ie. files containing : and \ can be accessed from Linux.
Jeremy.
(This used to be commit e9b8d23d61)
2007-10-10 10:57:59 -05:00
Jeremy Allison
bd16770954 r6895: Add "acl check permissions" to turn on/off the new behaviour of
checking for write access in a directory before delete. Also
controls checking for write access before labeling a file read-only
if DOS attributes are not being stored in EA's.
Docuementation to follow.
Jeremy.
(This used to be commit dd1a5e6e49)
2007-10-10 10:56:56 -05:00
Jeremy Allison
bd688a9138 r6633: Added "check_path_syntax_posix()" in preparation for handling
POSIX pathnames. Not yet used.
Jeremy.
(This used to be commit 381da9b55d)
2007-10-10 10:56:48 -05:00
Jeremy Allison
05cc4785a4 r6307: Ensure info requested bitmask is printed in log when querying security descriptors.
Jeremy.
(This used to be commit 4db288e314)
2007-10-10 10:56:36 -05:00
Jeremy Allison
0003238873 r6269: With help from Marcel Müller <mueller@maazl.de> in tracking down the bug,
fix trans2 and nttrans secondary packet processing. We were being too strict checking
the incoming packet (by 1 byte).
Jeremy.
(This used to be commit 3eea1ff4b7)
2007-10-10 10:56:34 -05:00
Volker Lendecke
83e11ba86c r6263: Get rid of generate_wellknown_sids, they are const static and initializable
statically.

Volker
(This used to be commit 3493d9f383)
2007-10-10 10:56:33 -05:00
Herb Lewis
978ca84860 r6225: get rid of warnings from my compiler about nested externs
(This used to be commit efea76ac71)
2007-10-10 10:56:30 -05:00
Jeremy Allison
6ef9d08090 r6204: Fix double-free of talloc context.
Jeremy.
(This used to be commit d5c56d2574)
2007-10-10 10:56:28 -05:00
Jeremy Allison
77fa234ffc r6203: Fix attribute return on creating a directory with nttrans_create.
Fix strange allocation semantics of openX.
Jeremy.
(This used to be commit da5a8b539d)
2007-10-10 10:56:28 -05:00
Jeremy Allison
0557c6cba2 r6172: Tidy up error processing significantly. Remove unix_ERR_XXX global nastyness.
Jeremy.
(This used to be commit d3379fe61b)
2007-10-10 10:56:27 -05:00
Jeremy Allison
89fffb349f r6160: Ensure allocation size is correctly returned for OpenX. Only set allocation
on create/truncate for nttrans.
Jeremy.
(This used to be commit fb05ac4c03)
2007-10-10 10:56:26 -05:00
Jeremy Allison
b76112f211 r6146: Added OS/2 EA support in trans2_open and trans2_mkdir. Fixed in nttrans_create.
Jeremy.
(This used to be commit 989fcb4c08)
2007-10-10 10:56:24 -05:00
Jeremy Allison
b7c6e71b26 r6141: Fix OS/2 EA's for NTcreate. OpenX and mkdir to follow.
Jeremy.
(This used to be commit 106f91ff65)
2007-10-10 10:56:24 -05:00
Jeremy Allison
7dcc247164 r6124: Fix for bug #2242 from Tom Lackemann <cessnatomny@yahoo.com> - don't
set SD on an NTtransact create unless we created the file.
Jeremy.
(This used to be commit b42eaf424e)
2007-10-10 10:56:23 -05:00
Gerald Carter
5d1cb8e79e r6014: rather large change set....
pulling back all recent rpc changes from trunk into
3.0.  I've tested a compile and so don't think I've missed
any files.  But if so, just mail me and I'll clean backup
in a couple of hours.

Changes include \winreg, \eventlog, \svcctl, and
general parse_misc.c updates.

I am planning on bracketing the event code with an
#ifdef ENABLE_EVENTLOG until I finish merging Marcin's
changes (very soon).
(This used to be commit 4e0ac63c36)
2007-10-10 10:56:15 -05:00
Jeremy Allison
deb0212172 r5893: Get us to pass some of the Samba4 EA tests. EA_LIST seems to be
working - need to valgrind it to be sure.
Jeremy.
(This used to be commit 8b2b652c0a)
2007-10-10 10:56:07 -05:00
Jeremy Allison
eb546db88d r5720: Attempt to fix bug #2382 (Excel shared workbook stops working). Also
incorporates part of the fix created by ke_miyata@itg.hitachi.co.jp
for bug #2045 (MS-Office behavior of timestamp).
Jeremy.
(This used to be commit 4f3b12ac73)
2007-10-10 10:55:57 -05:00
Jeremy Allison
c56d5cd4c4 r5637: Actually test and fix the crash bugs (sorry:-).
Jeremy.
(This used to be commit 4348ca4854)
2007-10-10 10:55:52 -05:00
Jeremy Allison
02fdabc2a7 r5636: Re-add the allocation size - parameterized by share as
"allocation roundup size", by default set as 1Mb. From
advice by BlueArc about Windows client behaviour. VC++
people can set this to zero to turn it off.
Jeremy.
(This used to be commit 833ca10177)
2007-10-10 10:55:52 -05:00
Jeremy Allison
f95e9fc45b r5548: Stop lying about allocation sizes to Windows clients. It was a nice
idea, and aparently improved performance in some circumstances, but it
breaks the VC++ compiler :-(. Not cool. Fix bug #2146.
Jeremy.
(This used to be commit b9f147634d)
2007-10-10 10:55:47 -05:00
Jeremy Allison
cb203b2d1e r5530: Keep the TRANS call up to date with the NTCreateX call.
Jeremy.
(This used to be commit 98a07e1520)
2007-10-10 10:55:45 -05:00
Jeremy Allison
e2cc3f4816 r5524: Don't do share mode checks on can_delete if open, the rest of the open
code will do this correctly. More for bug #2201.
Jeremy.
(This used to be commit faecf639ef)
2007-10-10 10:55:44 -05:00
Jeremy Allison
14fc089bf5 r5510: Optimisation to only do can_delete check if client asks for FILE_SHARE_DELETE.
Not completely correct but will catch the XP SP2 problem.
Jeremy.
(This used to be commit 1e2d0fcdbb)
2007-10-10 10:55:43 -05:00
Jeremy Allison
6baedb3d3f r5497: Fix for DIR1 failures in build farm. It struck me that we
only care about failing with ACCESS_DENIED if we can't delete
with DELETE access requested. All other errors will be processed
as normal.
Jeremy.
(This used to be commit 360800592c)
2007-10-10 10:55:43 -05:00
Jeremy Allison
fbd9e40983 r5324: In order to process DELETE_ACCESS correctly and return access denied
to a WXPSP2 client we must do permission checking in userspace first
(this is a race condition but what can you do...). Needed for bugid #2227.
Jeremy.
(This used to be commit da23577f16)
2007-10-10 10:55:37 -05:00
Stefan Metzmacher
8a2b44e56f r5225: fix mem leak and debug message
metze
(This used to be commit c0ee5922cd)
2007-10-10 10:55:33 -05:00
Jeremy Allison
acf9d61421 r4088: Get medieval on our ass about malloc.... :-). Take control of all our allocation
functions so we can funnel through some well known functions. Should help greatly with
malloc checking.
HEAD patch to follow.
Jeremy.
(This used to be commit 620f2e608f)
2007-10-10 10:53:32 -05:00