1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-22 16:23:49 +03:00
Commit Graph

1192 Commits

Author SHA1 Message Date
Stefan Metzmacher
a16180f202 r17317: - add a composite_create() function that allocates and initialize
the composite_context structue, we should try to convert all code
  to use this because there're a lot of places where the we have
  bugs with this task...
- add a composite_continue_smb2() helper

We should try to hide the internals of the composite code from the users
to avoid errors (and I found a lot of them... and will fix then step by step)

metze
2007-10-10 14:15:10 -05:00
Stefan Metzmacher
fe463bc568 r17278: fix un uninitialized value found by valgrind
metze
2007-10-10 14:15:05 -05:00
Stefan Metzmacher
e231eba828 r17277: we need to trigger an event when we return directly,
otherwise the callers callback function will not be called
and the caller is hanging forever...

metze
2007-10-10 14:15:05 -05:00
Stefan Metzmacher
f2196bf9b6 r17230: don't overwrite the error with NT_STATUS_NO_MEMORY
metze
2007-10-10 14:10:22 -05:00
Andrew Bartlett
003e2ab93c r17222: Change the function prototypes for the GENSEc and TLS socket creation
routines to return an NTSTATUS.  This should help track down errors.

Use a bit of talloc_steal and talloc_unlink to get the real socket to
be a child of the GENSEC or TLS socket.

Always return a new socket, even for the 'pass-though' case.

Andrew Bartlett
2007-10-10 14:10:20 -05:00
Andrew Bartlett
5d7c9c12cb r17197: This patch moves the encryption of bulk data on SASL negotiated security
contexts from the application layer into the socket layer.

This improves a number of correctness aspects, as we now allow LDAP
packets to cross multiple SASL packets.  It should also make it much
easier to write async LDAP tests from windows clients, as they use SASL
by default.  It is also vital to allowing OpenLDAP clients to use GSSAPI
against Samba4, as it negotiates a rather small SASL buffer size.

This patch mirrors the earlier work done to move TLS into the socket
layer.

Unusual in this pstch is the extra read callback argument I take.  As
SASL is a layer on top of a socket, it is entirely possible for the
SASL layer to drain a socket dry, but for the caller not to have read
all the decrypted data.  This would leave the system without an event
to restart the read (as the socket is dry).

As such, I re-invoke the read handler from a timed callback, which
should trigger on the next running of the event loop.  I believe that
the TLS code does require a similar callback.

In trying to understand why this is required, imagine a SASL-encrypted
LDAP packet in the following formation:

+-----------------+---------------------+
| SASL  Packet #1 | SASL Packet #2      |
----------------------------------------+
| LDAP Packet #1       | LDAP Packet #2 |
----------------------------------------+

In the old code, this was illegal, but it is perfectly standard
SASL-encrypted LDAP.  Without the callback, we would read and process
the first LDAP packet, and the SASL code would have read the second SASL
packet (to decrypt enough data for the LDAP packet), and no data would
remain on the socket.

Without data on the socket, read events stop.  That is why I add timed
events, until the SASL buffer is drained.

Another approach would be to add a hack to the event system, to have it
pretend there remained data to read off the network (but that is ugly).

In improving the code, to handle more real-world cases, I've been able
to remove almost all the special-cases in the testnonblock code.  The
only special case is that we must use a deterministic partial packet
when calling send, rather than a random length.  (1 + n/2).  This is
needed because of the way the SASL and TLS code works, and the 'resend
on failure' requirements.

Andrew Bartlett
2007-10-10 14:10:18 -05:00
Stefan Metzmacher
730cdc4475 r17083: - implement SMB2 Cancel in the client
- the 0xffffffffffffffff seqnum is reserved for SMB2 Break (oplock breaks)
  so don't use it in a request. we should someday try to test this...

metze
2007-10-10 14:10:11 -05:00
Volker Lendecke
6718550822 r17082: Add a test that walks and tests denying tconX access via the share security
descriptor. This is something that W2k3 does _not_ pass and probably is not
expected to, it seems the don't check access at tconX time.

Thanks to metze for the hint how in the srvsvc_NetShareInfo1501 struct the
length of the sd can be encoded in idl.

As metze says, there's probably more to the share secdesc, this needs more
testing. This one is here to walk the samba3 code.

Volker
2007-10-10 14:10:11 -05:00
Stefan Metzmacher
1f48e7dca6 r17081: add idle handler support to the smb2 client lib too
metze
2007-10-10 14:10:11 -05:00
Stefan Metzmacher
49b96ac44a r17020: pass the real error to the failing requests
metze
2007-10-10 14:10:08 -05:00
Stefan Metzmacher
8d4fd35b10 r17019: don't timeout on notifies
metze
2007-10-10 14:10:08 -05:00
Stefan Metzmacher
de50e0ccdd r16980: - make struct smb_notify a union and add levels RAW_NOTIFY_NTTRANS,RAW_NOTIFY_SMB2
- parse SMB2 Notify reponse

metze
2007-10-10 14:10:06 -05:00
Stefan Metzmacher
a455dc7a83 r16975: implement SMB2 Notify call in the client lib
metze
2007-10-10 14:10:04 -05:00
Stefan Metzmacher
e40d62363c r16949: add and fix some NOTIFY return codes
metze
2007-10-10 14:10:02 -05:00
Stefan Metzmacher
d41a83d559 r16918: the SMB2 Ioctls are sometimes called with a wildcard handle
the operation doesn't need a valid file handle in that case

metze
2007-10-10 14:10:00 -05:00
Stefan Metzmacher
58bed7322c r16875: implement SMB2 Find in the frontend
metze
2007-10-10 14:09:56 -05:00
Stefan Metzmacher
3cf50e26b7 r16873: - grow the buffer with the correct size, we maybe had 1 byte preallocated
- body_size doesn't contain the preallocated byte so don't remove it

metze
2007-10-10 14:09:55 -05:00
Stefan Metzmacher
283bec8295 r16871: zero padding bytes
(found by valgrind)

metze
2007-10-10 14:09:55 -05:00
Stefan Metzmacher
78c201db8a r16834: split the level's of smb_search_first/smb_search_next and the levels
of smb_search_data

metze
2007-10-10 14:09:49 -05:00
Günther Deschner
075242b976 r16801: Adding WERR_DS_DRA_ACCESS_DENIED.
Guenther
2007-10-10 14:09:46 -05:00
Rafal Szczesniak
48a9f82244 r16791: Typo fix in a comment.
rafal
2007-10-10 14:09:46 -05:00
Stefan Metzmacher
58baae8fc4 r16734: the 2 bytes after the opcode and before the flags,
is no padding...

the following patch is needed for vista beta2 to connect to samba4

metze
2007-10-10 14:09:42 -05:00
Stefan Metzmacher
b3bdd4afde r16708: the packet format of SMB2 SessionSetup has changed,
there're 8 more unknown bytes...

Note:
 - vista-CTP also support this as a server,
   but uses the old format as client
 - but vista-beta2 only uses and accept the new format

metze
2007-10-10 14:09:40 -05:00
Stefan Metzmacher
f309209629 r16705: fix a bug found by valgrind...
as we setup the 1 padding byte for non present dynamic part,
we need to overwrite it when we're getting a real dynamic part,
so we need to remove the buf->size +=1 when we do the first
push to the dynamic part (when buf->dynamic is still but->body + buf->body_fixed)

metze
2007-10-10 14:09:39 -05:00
Stefan Metzmacher
f97a21b970 r16699: the layout of SMB2 Read and Write is identical...
so we know that the 9th bytes is just uninitialized padding

metze
2007-10-10 14:09:39 -05:00
Stefan Metzmacher
429215113b r16669: this calls don't expect any valid error codes than NT_STATUS_OK
metze
2007-10-10 14:09:37 -05:00
Stefan Metzmacher
79e51f033e r16667: - use ndr_pull_struct_blob() to make the RAW_FILEINFO_SEC_DESC pull code
simpler
- use ndr_push_struct_blob() for RAW_SFILEINFO_SEC_DESC

metze
2007-10-10 14:09:37 -05:00
Stefan Metzmacher
f099fcb6e3 r16569: - use push_string()
metze
2007-10-10 14:09:35 -05:00
Stefan Metzmacher
81702c36c2 r16566: add pull function for a site32/offset32 blob
metze
2007-10-10 14:09:35 -05:00
Stefan Metzmacher
6164d1e22e r16464: split client and server min/max protocol settings
metze
2007-10-10 14:09:29 -05:00
Stefan Metzmacher
dcc02df829 r16406: use the generic smb_handle in smb2_getinfo/smb2_setinfo
metze
2007-10-10 14:09:13 -05:00
Gerald Carter
26a2fa97e4 r16100: Patch from Michael Wood <mwood@icts.uct.ac.za>: s/then/than/ for correct grammar 2007-10-10 14:08:59 -05:00
Volker Lendecke
b76a3d4f59 r16091: Without this patch Samba3 will not accept this, and simply setting the "92" to
"100" will give funny permissions...

Volker
2007-10-10 14:08:59 -05:00
Andrew Bartlett
36aa839080 r16073: On an incoming wildcard search, it is critical that the size be
correct, or we try and do a memcmp on the trailing '\0'.

This happens because we now use memcmp for the prefix matching.

I just wish I had a test other than a particular invocation of the OSX
client.  (I've tried and failed so far)

Andrew Bartlett
2007-10-10 14:08:57 -05:00
Andrew Tridgell
61c6100617 r15854: more talloc_set_destructor() typesafe fixes 2007-10-10 14:08:32 -05:00
Andrew Tridgell
7ea51fb624 r15835: fixed locking in the client library 2007-10-10 14:08:31 -05:00
Andrew Tridgell
8a7047c102 r15834: fixed a memory leak in the session code 2007-10-10 14:08:30 -05:00
Stefan Metzmacher
1a9bfa2ac9 r15820: this line was just for testing
metze
2007-10-10 14:08:28 -05:00
Stefan Metzmacher
4a307d7185 r15815: add SMB2 Lock client code
metze
2007-10-10 14:08:27 -05:00
Stefan Metzmacher
8f1850ef65 r15814: add SMB2 Lock interface structure
metze
2007-10-10 14:08:27 -05:00
Andrew Tridgell
1a57b16715 r15794: fixed a problem with DOS status codes - found by kukks (thanks!) 2007-10-10 14:08:21 -05:00
Stefan Metzmacher
4e8c9bbd76 r15775: add some privilege related WERROR codes
metze
2007-10-10 14:08:17 -05:00
Stefan Metzmacher
c7e8e79d75 r15770: when there's a dynamic body, we need to send the first byte even if the
dynamic size if 0

metze
2007-10-10 14:08:16 -05:00
Stefan Metzmacher
8aebd7adc9 r15756: handle RAW_OPEN_SMB2
metze
2007-10-10 14:08:14 -05:00
Stefan Metzmacher
92c19b1ba4 r15744: convert_string_talloc() handles src_len == 0 as error
but it's valid in this case

metze
2007-10-10 14:08:12 -05:00
Stefan Metzmacher
9180635317 r15741: move smb2 request structures into the main smb request structs
as new levels

metze
2007-10-10 14:08:11 -05:00
Stefan Metzmacher
b9ba2b8c5a r15740: add TODO, that we should check if the server supports
large offsets, before sending large offset requests

metze
2007-10-10 14:08:11 -05:00
Stefan Metzmacher
1f50b2e053 r15737: fix a typos and comment
metze
2007-10-10 14:08:10 -05:00
Stefan Metzmacher
95bf41b4d4 r15718: - split the SMBflush with the 0xFFFF wildcard fnum into a different level
metze
2007-10-10 14:08:09 -05:00
Stefan Metzmacher
0d983fa46f r15688: windows sends 4 as max_setup count on NT IOCTL
metze
2007-10-10 14:08:06 -05:00