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

86 Commits

Author SHA1 Message Date
Stefan Metzmacher
431b476868 s3:libsmb: use smb_len_nbt() in clitrans.c
metze
2011-10-26 15:41:02 +02:00
Stefan Metzmacher
afda15aa86 s3:libsmb: make use of cli_state_available_size() in cli_trans_format()
metze
2011-09-13 13:16:08 +02:00
Stefan Metzmacher
5d06b2197b s3:libsmb/clitrans: correctly transfer the seqnum between secondary and primary requests
This is needed to implement SMB signing correct.

metze
2011-06-10 19:27:05 +02:00
Stefan Metzmacher
1dd24ac06a s3:libsmb/clitrans: fix handling of multi pdu [nt]trans[s][2] calls
We now keep the primary request open for the whole logical request.
The primary request is the one that gets all incoming replies.
While secondary requests are handled as separate one-way requests.

metze
2011-06-10 19:27:05 +02:00
Stefan Metzmacher
10bb088cf1 s3:libsmb/clitrans: use subreq2 as variable for the secondary requests
metze
2011-06-10 19:27:05 +02:00
Stefan Metzmacher
5146c9ba9d s3:libsmb/clitrans: move MID handling to the end of cli_trans_send() and add a comment
metze
2011-06-10 19:27:05 +02:00
Stefan Metzmacher
0a8fd50bd8 s3:libsmb/clitrans: correctly marshall [nt]trans[s][2] requests
We need to align params and data to 4 byte offsets.

This also correctly recalculates the useable space after each step.

metze
2011-06-10 19:27:05 +02:00
Stefan Metzmacher
6f7af1b038 s3:libsmb/clitrans: marshall SMBnttrans[2] as the others
This is just to make the code more readable
and easier to notice how many words we're using in vwv.

metze
2011-06-10 19:27:05 +02:00
Stefan Metzmacher
428a86c92b s3:libsmb/clitrans: use uint32_t for param and data variables
SMBnttrans uses 32-bit values there.

metze
2011-06-10 19:27:05 +02:00
Stefan Metzmacher
2ae565b681 s3:libsmb/clitrans: remove unused secondary_request_ctx
metze
2011-06-10 19:27:05 +02:00
Andrew Bartlett
3d15137653 s3-talloc Change TALLOC_ARRAY() to talloc_array()
Using the standard macro makes it easier to move code into common, as
TALLOC_ARRAY isn't standard talloc.
2011-06-09 12:40:08 +02:00
Volker Lendecke
0645deb1b4 s3: Do central cli_set_error 2011-05-19 17:31:30 +02:00
Günther Deschner
27022587e3 s3-libsmb: move protos to libsmb/proto.h
Guenther
2011-05-06 16:37:18 +02:00
Günther Deschner
50883cfeb4 s3-tevent: only include ../lib/util/tevent wrappers where needed.
Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Fri Apr 29 14:00:30 CEST 2011 on sn-devel-104
2011-04-29 14:00:30 +02:00
Andrew Tridgell
15e84a9a09 charcnv: removed the allow_badcharcnv and allow_bad_conv options to convert_string*()
we shouldn't accept bad multi-byte strings, it just hides problems

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Mar 24 01:47:26 CET 2011 on sn-devel-104
2011-03-24 01:47:26 +01:00
Volker Lendecke
6e684c8460 s3: Remove unused cli_send/receive_trans 2011-01-17 08:03:42 +01:00
Volker Lendecke
2d44a0583b s3: Remove unused cli_send/receive_nt_trans 2011-01-17 08:03:42 +01:00
Günther Deschner
c7fe04abc7 s3-build: only include async headers where needed.
Guenther
2010-09-20 13:54:42 -07:00
Volker Lendecke
0a224bc77b s3: Save the received trans2 from the inbuf in cli_trans 2010-08-05 13:57:29 +02:00
Volker Lendecke
82f6f3920c s3: Explicitly handle inbuf in cli_trans_done 2010-02-22 23:23:20 +01:00
Volker Lendecke
d122bfc064 s3: Add a talloc_move for the inbuf to cli_smb_recv 2010-02-22 23:23:18 +01:00
Volker Lendecke
f4cf1c56a2 s3: Add min_setup, min_param and min_data to cli_trans_recv
Every caller that expects to receive something needs to check if enough was
sent. Make this check mandatory for everyone.

Yes, this makes the parameter list for cli_trans a bit silly, but that's just
the way it is: A silly protocol request :-)

While there, convert some _done functions to tevent_req_simple_finish_ntstatus.
2009-11-14 12:20:12 +01:00
Bo Yang
05379f0125 s3: return proper error code in cli_smb_req_send
Signed-off-by: Bo Yang <boyang@samba.org>
2009-05-13 18:47:00 +08:00
Jeremy Allison
ad9d64ee1b Clean up assignments to iov_base, ensure it's always cast to void *. This should quieten some warnings with picky compilers on the buildfarm.
Jeremy.
2009-05-12 11:45:37 -07:00
Andrew Bartlett
3b3e21bd9b Convert Samba3 to use the common lib/util/charset API
This removes calls to push_*_allocate() and pull_*_allocate(), as well
as convert_string_allocate, as they are not in the common API

To allow transition to a common charcnv in future, provide Samba4-like
strupper functions in source3/lib/charcnv.c

(the actual implementation remains distinct, but the API is now shared)

Andrew Bartlett
2009-04-14 12:53:56 +10:00
Volker Lendecke
7ef78bd7b5 Convert cli_trans to tevent_req 2009-04-06 21:32:06 +02:00
Volker Lendecke
ba408a2c82 Remove async_req dependency from cli_pull_trans 2009-04-05 16:07:41 +02:00
Volker Lendecke
62f12e2322 Fix an uninitialized variable valgrind error
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-03-31 21:19:15 +02:00
Stefan Metzmacher
6af15943c6 s3:libsmb: use new simplified smb_signing code for the client side
We store the seqnum/mid mapping in the cli_request structure
for async requests and in the cli_state structure for sync calls.

We skip the signing check for oplock requests while waiting
for async requests coming in.

metze
2009-03-23 12:21:14 +01:00
Stefan Metzmacher
88dd6af605 s3:libsmb: always create bytes array in cli_trans code
Otherwise we return NO_MEMORY without a reason for fragmented trans
requests, as talloc_append_blob() returns buf if we append a 0 length
blob. When we pass buf = NULL we'll get back NULL and then assume
NO_MEMORY...

metze
2009-03-19 13:57:21 +01:00
Stefan Metzmacher
880fbc4e8c s3:libsmb: fix smb signing for fragmented trans/trans2/nttrans requests
Before we send the secondary requests we need to remove the
old mid=>seqnum mapping and reset cli->mid and make the new
mid=>seqnum mapping "persistent".

The bug we had in cli_send_trans was this:
The first cli_send_smb() incremented cli->mid
and the secondary requests used the incremented mid,
but as cli->outbuf still had the correct mid,
we send the correct mid to the server. The real problem
was that the cli_send_smb() function stored the seqnum
under the wrong mid.

cli_send_nttrans() was totally broken and now follows the
same logic as cli_send_trans().

The good thing is that in practice the problem is unlikely to happen,
because max_xmit is large enough to avoid secondary requests.

metze
2009-03-19 13:54:22 +01:00
Volker Lendecke
c14b7e648b Split up async_req into a generic and a NTSTATUS specific part 2009-02-01 19:05:39 +01:00
Volker Lendecke
37da26a06e Add the strlen to push to smb_bytes_push_str, return the converted size
The pushed strlen replaces the STR_TERMINATE flag which I personally always
find very confusing.
2009-01-29 21:38:06 +01:00
Volker Lendecke
4abdd3981e Pass "bytes_alignment" up through cli_request_send
This parameter makes smb_spice_chain add padding before the bytes field
2008-12-19 14:53:29 +01:00
Volker Lendecke
7fbb64d726 Simplify async programming a bit with helper routines
Introduce async_req_is_error() and async_req_simple_recv()
2008-12-08 22:09:33 +01:00
Volker Lendecke
9a3be6f0f8 Move cli_trans_oob to lib/util.c
Rename it to trans_oob, it will be used in the server routines.
2008-11-28 08:24:37 +01:00
Volker Lendecke
40b93006c1 Fix some bogus compiler warnings
(This used to be commit 84ed752d9f)
2008-09-10 11:57:10 +02:00
Volker Lendecke
c81b5fd440 Add async trans/trans2/nttrans calls to libsmb
Logic stolen from Samba4, naturally the specific implementation differs a bit.
(This used to be commit 4b8bc5b03d)
2008-09-09 17:37:34 +02:00
Volker Lendecke
44b7f672b8 Fix signing problem in the client with transs requests
This is a different fix than Jeremy put into 3-0-test with 040db1ce85 and other
branches with different hashes. Jeremy, I think your fix led to bug 5436, so I
reverted your fix. This fixes the original problem I found with the transs
requests for large rpc queries in a different way. Please check!

Thanks,

Volker
(This used to be commit c572d537e0)
2008-05-13 16:29:47 +02:00
Volker Lendecke
8ef2ada0ef Revert "Fix signing bug found by Volker. That one was *subtle*."
This reverts commit 816aea6c1a.
(This used to be commit e402e6508c)
2008-05-13 16:29:47 +02:00
Jeremy Allison
afc93255d1 Add SMB encryption. Still fixing client decrypt but
negotiation works.
Jeremy.
(This used to be commit d78045601a)
2007-12-26 17:12:36 -08:00
Jeremy Allison
774a30989a Fix signing bug found by Volker. That one was *subtle*.
Jeremy
(This used to be commit 816aea6c1a)
2007-12-04 13:30:22 -08:00
Jeremy Allison
d19861e29d Ensure we have 2 bytes of zeros as a pad-buffer at the
end of all returned trans/trans2/nttrans client replies.
Not included in a count - for safety purposes.
Jeremy.
(This used to be commit 3e65fa5bcf)
2007-11-30 18:02:19 -08: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
Gerald (Jerry) Carter
e5a951325a [GLUE] Rsync SAMBA_3_2_0 SVN r25598 in order to create the v3-2-test branch.
(This used to be commit 5c6c8e1fe9)
2007-10-10 15:34:30 -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
Derrell Lipman
d1153fc790 r22732: - Testing of libsmbclient against Vista revealed what is likely a bug in
Vista.  Vista provides a plethora of kludges to simulate older versions of
  Windows.  The kludges are in the form of shortcuts (or more likely symbolic
  links, but I don't know enough about Vista to determine that definitively)
  and in most cases, attempts to access them get back an "access denied"
  error.  On one particular folder, however, "<share>/Users/All Users", it
  returns an unknown (to ethereal and the Samba3 code) NT status code:
  0x8000002d.  Although this code does not have a high byte of 0xc0 indicating
  that it is an error, it appears to be an alternate form of "access denied".

  Without this patch, libsmbclient times out on an attempt to enumerate that
  folder rather than returning an error to the caller.  This patch corrects
  that problem.
(This used to be commit cc0cd3a12f)
2007-10-10 12:21:52 -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
7e55a6e6c7 r21899: At least we're getting to stage 2 of the blob
exchange. Still not working but closer.
Jeremy.
(This used to be commit 2fde5c703d)
2007-10-10 12:18:47 -05:00