1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-14 19:24:43 +03:00

263 Commits

Author SHA1 Message Date
Andrew Tridgell
5b44130afa r2671: we're getting too many errors caused by the talloc_realloc() API not
taking a context (so when you pass a NULL pointer you end up with
memory in a top level context). Fixed it by changing the API to take a
context. The context is only used if the pointer you are reallocing is
NULL.
(This used to be commit 8dc23821c9f54b2f13049b5e608a0cafb81aa540)
2007-10-10 12:59:20 -05:00
Andrew Bartlett
9a9dcc7250 r2552: Character set conversion and string handling updates.
The intial motivation for this commit was to merge in some of the
bugfixes present in Samba3's chrcnv and string handling code into
Samba4.  However, along the way I found a lot of unused functions, and
decided to do a bit more...

The strlen_m code now does not use a fixed buffer, but more work is
needed to finish off other functions in str_util.c.  These fixed
length buffers hav caused very nasty, hard to chase down bugs at some
sites.

The strupper_m() function has a strupper_talloc() to replace it (we
need to go around and fix more uses, but it's a start).  Use of these
new functions will avoid bugs where the upper or lowercase version of
a string is a different length.

I have removed the push_*_allocate functions, which are replaced by
calls to push_*_talloc.  Likewise, pstring and other 'fixed length'
wrappers are removed, where possible.

I have removed the first ('base pointer') argument, used by push_ucs2,
as the Samba4 way of doing things ensures that this is always on an
even boundary anyway.  (It was used in only one place, in any case).
(This used to be commit dfecb0150627b500cb026b8a4932fe87902ca392)
2007-10-10 12:59:05 -05:00
Andrew Bartlett
5e7259a697 r2535: Make certain, that even if we have invalid ASN.1 here, and the caller does not check the return value, that we don't return uninitialised memory here.
Andrew Bartlett
(This used to be commit 0e081ecb9d752067b99305b3b62477c3eed9ac24)
2007-10-10 12:59:03 -05:00
Andrew Tridgell
ca60193f24 r2520: - finished implementing the server side of the old style search requests
(This used to be commit 4e4859c06b9de5fe60ebd17cfb09eed480b79ec1)
2007-10-10 12:59:01 -05:00
Tim Potter
bc8ef3d1b6 r2516: Remove duplicate line.
(This used to be commit dff6262e4f9d48ed753e00faf081e52c03c7129c)
2007-10-10 12:59:01 -05:00
Andrew Bartlett
211d3cff2f r2507: Allow a case-insensitive lookup when converting strings into NTSTATUS
values.

Andrew Bartlett
(This used to be commit 59e361f7cca1bbaeba5d5952173b90665a76ab2d)
2007-10-10 12:59:00 -05:00
Andrew Tridgell
2e55ba2018 r2498: added STATUS_NO_MORE_FILES to nt status codes that we can map to a string
(This used to be commit b7191999634cf3817dc69dd3743d185ae41dbdc3)
2007-10-10 12:58:58 -05:00
Stefan Metzmacher
d9d634ce97 r2347: merge LDAP ASN.1 fixes from trunk
metze
(This used to be commit 492a00d909d6f3ff8305f102551f60d91d988ccd)
2007-10-10 12:58:45 -05:00
Volker Lendecke
3e454a5891 r2173: Fix asn1 BOOLEANs. Thanks to Love Hornquist-Astrand.
Volker
(This used to be commit 53f58c053b643c8b45d2f9394faf8cfdd5005f6d)
2007-10-10 12:58:29 -05:00
Stefan Metzmacher
deb288d82e r2166: sync the asn1 stuff with trunk
metze
(This used to be commit 46762c9ee011e5c37f3d94a1b80ed7d679c55434)
2007-10-10 12:58:28 -05:00
Stefan Metzmacher
0575d5e0d2 r2124: merge from trunk (-r 2123):
Argl. I could never get the naming right. Having the most significant byte at
the lowest memory address is big endian, at least according to the google
search for 'big endian'....

Volker
(This used to be commit bc4c188362901423cc900fd4bdfa4a9ed6838f2b)
2007-10-10 12:58:26 -05:00
Stefan Metzmacher
776d90d801 r2122: merge from trunk (-r 2120):
Fix bug found by Love H?\195?\182rnquist ?\195?\133strand: asn1_write_Integer needs to push
stuff little endian.
(This used to be commit 79bee828fbb70e71ad3fbd45758bcc7775ea977b)
2007-10-10 12:58:26 -05:00
Andrew Tridgell
f3d9466469 r2102: fixed a race condition when handling dos errors that are in our
table. Should get rid of the static buffer completely at some point.
(This used to be commit e0bda611121ed1f4afc2bfe83853e5521c494164)
2007-10-10 12:58:25 -05:00
Andrew Bartlett
18bbab7268 r2099: Get rid of another private ARCFOUR implementation from the codebase.
Andrew Bartlett
(This used to be commit 0237389ce765cbb6825b79de1b0727da0969efeb)
2007-10-10 12:58:24 -05:00
Andrew Tridgell
35d65298d5 r2037: switched the asn.1 code to use talloc
(This used to be commit c0862278cab106a441d1049c1da945fa11353f9f)
2007-10-10 12:58:19 -05:00
Andrew Bartlett
dcd43a4cbe r1990: Fix breakage caused by the recent talloc changes. (Failure to process
an SPNEGO login from WinXP at least).

talloc_asprintf_append() lost an argument, but because TALLOC_CTX is
now a void*, this was not picked up by the compiler.

I've tested the login (asn1), but not the registry/gtk changes.

Andrew Bartlett
(This used to be commit 4294be44057124568fe1d176702056bb62ad3214)
2007-10-10 12:58:15 -05:00
Stefan Metzmacher
c074e30e2e r1856: - move asn1 functions to asn1.c
- merge some stuff from trunk

metze
(This used to be commit 267edf1c0bb1ed73f1ba19148e6412b9a1c41979)
2007-10-10 12:58:02 -05:00
Stefan Metzmacher
69d6435358 r1851: if we try to peek a subtag, check if the parent tag has remaining data
metze
(This used to be commit 01626ed381bdc9cab3e94e80220c916bb61acf30)
2007-10-10 12:58:02 -05:00
Simo Sorce
2e28edd233 r1771: OK Let's add tests for ldap.
Thanks to Metze and Volker for their unvaluable support :)
(This used to be commit e6a6c0737ab94d58930c0d4e1ef0bb4d99510833)
2007-10-10 12:57:56 -05:00
Stefan Metzmacher
fa8d37adae r1756: merge volkers ldap client lib to samba4 for simo to start with the
ldap server code

it's not compiled in yet...

metze
(This used to be commit 48939adca1332ff90f9287311c0e9ff3e2e5917a)
2007-10-10 12:57:54 -05:00
Andrew Bartlett
8ed563cfbb r1723: Make sure we bail out on error in reading a OID.
Andrew Bartlett
(This used to be commit 6da7b65851aa4932aab56d1ab0f8fc67ccb62cdf)
2007-10-10 12:57:50 -05:00
Stefan Metzmacher
c5fbb6f23c r1654: rename cli_ -> smbcli_
rename CLI_ -> SMBCLI_

metze
(This used to be commit 8441750fd9427dd6fe477f27e603821b4026f038)
2007-10-10 12:57:47 -05:00
Andrew Bartlett
f607197054 r1498: (merge from 3.0)
Rework our random number generation system.

On systems with /dev/urandom, this avoids a change to secrets.tdb for every fork().

For other systems, we now only re-seed after a fork, and on startup.
No need to do it per-operation.  This removes the 'need_reseed'
parameter from generate_random_buffer().

This also requires that we start the secrets subsystem, as that is
where the reseed value is stored, for systems without /dev/urandom.

In order to aviod identical streams in forked children, the random
state is re-initialised after the fork(), at the same point were we do
that to the tdbs.

Andrew Bartlett
(This used to be commit b97d3cb2efd68310b1aea8a3ac40a64979c8cdae)
2007-10-10 12:57:35 -05:00
Andrew Bartlett
b359f5d893 r1352: Add a 'peek' function to our ASN1 code, so we can safely perform the
various switches without looking one byte past te end of the buffer.
(This used to be commit 5bce188d429b4166f3d0314922ae40204de182a7)
2007-10-10 12:56:52 -05:00
Volker Lendecke
0fa0eaa383 r1342: When fixing _lsa_lookupsids in samba3 I wanted to find out the number of SIDs
w2k3 can handle in a single request. With the samba3 client rpc libs I can do
about 21000 SIDs in a single request. test_many_LookupSIDs with 10000 SIDs
fails on the subsequent request with a NET_WRITE_FAULT. Maybe the Samba4 DCE
people want to take a look at this -- I don't see the problem.

Bug fix: SID components should be treated as unsigned when parsing

Volker
(This used to be commit 8c997a2ad2e89a640f854b556ef76a3d52c15963)
2007-10-10 12:56:51 -05:00
Stefan Metzmacher
25bf685da5 r1274: revert -r 1239 as discussed with abartlet
metze
(This used to be commit 52e2d038252bd745d53c687d266ad3ad62efa6fc)
2007-10-10 12:56:48 -05:00
Tim Potter
37fcf22364 r1268: varient -> variant
(This used to be commit de5984c95602ca67e8ac3139c3aa4330b74266e0)
2007-10-10 12:56:46 -05:00
Stefan Metzmacher
81db9ef442 r1239: move the old msrpc_<gen|parse>() functions to ndr_<push|pull>_format_blob()
simular to ndr_<push|pull>_struct_blob()

metze
(This used to be commit b25dd341e0febd550a2936ca484b6fecce2ff8c2)
2007-10-10 12:56:46 -05:00
Andrew Bartlett
be081037e0 r1200: Add 'gensec', our generic security layer.
This layer is used for DCERPC security, as well as ntlm_auth at this
time.  It expect things like SASL and the CIFS layer to use it as
well.

The particular purpose of this layer is to introduce SPENGO, which
needs generic access to the actual implementation mechanisms.

Schannel, due to it's 'interesting' setup properties is in GENSEC, but
is only in the RPC code.

Andrew Bartlett
(This used to be commit 902af49006fb8cfecaadd3cc0c10e2e542083fb1)
2007-10-10 12:56:44 -05:00
Andrew Bartlett
bf598954f7 r1198: Merge the Samba 3.0 ntlm_auth, including the kerberos and SPENGO parts.
I have moved the SPNEGO and Kerberos code into libcli/auth, and intend
to refactor them into the same format as NTLMSSP.

Andrew Bartlett
(This used to be commit 58da78a7460d5d0a4abee7d7b84799c228e6bc0b)
2007-10-10 12:56:44 -05:00
Andrew Bartlett
9f38798509 r1129: Remove unused function.
Andrew Bartlett
(This used to be commit 4d23b9e039872273f3ef433d94d24759bcb87c30)
2007-10-10 12:56:39 -05:00
Andrew Bartlett
46c88d561f r1061: The start of the SamLogon call for the NETLOGON pipe.
Changes:

- Check for a valid 'pipe_state' in netr_ServerAuthenticate3 before
  we dereference it

- removes the expansionroom[7] in the netr_SamInfo* structs to 7
individual elements.
- renames netr_SamInfo -> netr_SamInfo2
          netr_SamInfo2 -> netr_SamInfo3
  - Having the thing we always called an 'info3' being 'netr_SamInfo2'
    was just too confusing.

- Expand and fill in extra details about users from the SAM, into
  the server_info, for processing into the SamLogon reply.

- Add a dum_sid_dup() function to duplicate a struct dom_sid

The SamLogon code currently does not return supplementary groups, and is
only tested with Samba4 smbtorture.

Andrew Bartlett
(This used to be commit 6c92563b7961f15fc74b02601e105d5e1d04f04d)
2007-10-10 12:56:35 -05:00
Andrew Tridgell
8087d844ef r995: - renamed many of our crypto routines to use the industry standard
names rather than our crazy naming scheme. So DES is now called
  des_crypt() rather than smbhash()

- added the code from the solution of the ADS crypto challenge that
  allows Samba to correctly handle a 128 bit session key in all of the
  netr_ServerAuthenticateX() varients. A huge thanks to Luke Howard
  from PADL for solving this one!

- restructured the server side rpc authentication to allow for other
  than NTLMSSP sign and seal. This commit just adds the structure, the
  next commit will add schannel server side support.

- added 128 bit session key support to our client side code, and
  testing against w2k3 with smbtorture. Works well.
(This used to be commit 729b2f41c924a0b435d44a14209e6dacc2304cee)
2007-10-10 12:56:25 -05:00
Andrew Tridgell
dfbf620129 r975: slight improvemet to nt_errstr(), still needs to be fixed properly
(getting rid of the static buffer)
(This used to be commit 86a6236c2ad14fe94f5d7c488bfdbfb329d2a0bb)
2007-10-10 12:56:24 -05:00
Stefan Metzmacher
770e3307ce r962: convert 'unsigned' and 'unsigned int' to uint_t
metze
(This used to be commit 57151e80eb1090281401930c8fe25b20a8cf3a38)
2007-10-10 12:56:23 -05:00
Stefan Metzmacher
98d291423f r961: convert 'uchar' to 'uint8_t'
metze
(This used to be commit 9f914e4af99e18b469d4cf9d8b1514a2bd28ddec)
2007-10-10 12:56:23 -05:00
Stefan Metzmacher
fa2e9ec311 r960: convert 'unsigned int' to uint_t in the most places
metze
(This used to be commit 18062d2ed9fc9224c43143c10efbf2f6f1f5bbe0)
2007-10-10 12:56:23 -05:00
Stefan Metzmacher
45e93c19ef r943: change samba4 to use 'uint8_t' instead of 'unsigned char'
metze
(This used to be commit b5378803fdcb3b3afe7c2932a38828e83470f61a)
2007-10-10 12:56:21 -05:00
Andrew Tridgell
8b3f08cefc r898: - remove some unused macros
- remove unused lib/smbpasswd.c

- don't set the pkt size twice when doing SMB signing
(This used to be commit 69a2942f7987647a32d43c71f41ac1a82a82ccda)
2007-10-10 12:56:18 -05:00
Stefan Metzmacher
fcd718c7d8 r890: convert samba4 to use [u]int8_t instead of [u]int8
metze
(This used to be commit 2986c5f08c8f0c26a2ea7b6ce20aae025183109f)
2007-10-10 12:56:16 -05:00
Stefan Metzmacher
f88bf54c7f r889: convert samba4 to use [u]int16_t instead of [u]int16
metze
(This used to be commit af6f1f8a01bebbecd99bc8c066519e89966e65e3)
2007-10-10 12:56:16 -05:00
Stefan Metzmacher
f9d8f8843d r884: convert samba4 to use [u]int32_t instead of [u]int32
metze
(This used to be commit 0e5517d937a2eb7cf707991d1c7498c1ab456095)
2007-10-10 12:56:15 -05:00
Andrew Bartlett
5b0ab386cb r874: This patch is a pile of work on NTLMSSP:
Samba's NTLMSSP code is now fully talloc based, which should go a long
way to cleaning up the memory leaks in this code.  This also avoids a
lot of extra copies of data, as we now allocate the 'return' blobs on
a caller-supplied context.

I have also been doing a lot of work towards NTLM2 signing and
sealing.  I have this working for sealing, but not for the verifier
(MD5 integrity check on the stream) which is still incorrect.

(I can aim a rpcecho sinkdata from a Win2k3 box to my server, and the
data arrives intact, but the signature check fails.  It does however
match the test values I have...).

The new torture test is cludged in - when we get a unit test suite
back, I'll happliy put it in the 'right' place....

Andrew Bartlett
(This used to be commit 399e2e2b1149b8d1c070aa7f0d5131c0b577d2b9)
2007-10-10 12:56:14 -05:00
Andrew Tridgell
579c13da43 r873: converted samba4 to use real 64 bit integers instead of
structures. This was suggested by metze recently.

I checked on the build farm and all the machines we have support 64
bit ints, and support the LL suffix for 64 bit constants. I suspect
some won't support strtoll() and related functions, so we will
probably need replacements for those.
(This used to be commit 9a9244a1c66654c12abe4379661cba83a73c4c21)
2007-10-10 12:56:14 -05:00
Andrew Tridgell
5767c10773 r718: removed some more unused code, and two source files
(This used to be commit a9768c25fd32e76514c837f343f2b52bf0f0824d)
2007-10-10 12:53:44 -05:00
Andrew Bartlett
dce84ffd37 r610: - Merge the Samba3 'ntlm_auth --diagnostics' testsuite to Samba4.
- This required using NETLOGON_NEG_AUTH2_FLAGS for the
    SetupCredentials2 negotiation flags, which is what Samba3 does,
    because otherwise the server uses different crypto.
  - This tests the returned session keys, which we decrypt.

 - Update the Samba4 notion of a 'session key' to be a DATA_BLOB in
   most places.

 - Fix session key code to return NT_STATUS_NO_SESSION_KEY if none is
   available.

 - Remove a useless argument to SMBsesskeygen_ntv1

 - move netr_CredentialState from the .idl to the new credentials.h

Andrew Bartlett
(This used to be commit 44f8b5b53e6abd4de8a676f78d729988fadff320)
2007-10-10 12:51:51 -05:00
Andrew Bartlett
d8bb3d81a6 r451: More NTLMSSP work.
The work here is trying to get the LM_KEY option for NLTMSSP
operating, however until that functions properly, it is now controlled
by some new smb.conf options, defaulting off.

Andrew Bartlett
(This used to be commit c63eb35b45c6db6e4c5302d1832bb5cef49a14f6)
2007-10-10 12:51:43 -05:00
Andrew Bartlett
9f084101dd r443: Update Samba4 to the auth and NTLMSSP code from Samba3.
Not all the auth code is merged - only those parts that are actually
being used in Samba4.

There is a lot more work to do in the NTLMSSP area, and I hope to
develop that work here.  There is a start on this here - splitting
NTLMSSP into two parts that my operate in an async fashion (before and
after the actual authentication)

Andrew Bartlett
(This used to be commit 5876c78806e6a6c44613a1354e8d564b427d0c9f)
2007-10-10 12:51:42 -05:00
Andrew Tridgell
2b9fb9618a r324: - don't reseed on every password generate
- check for overflow (very unlikely) in random buffer generation
(This used to be commit 548ec1efefa6f337a362cbadae74f177774e9e29)
2007-10-10 12:51:32 -05:00
Andrew Tridgell
5f545543f0 r305: - added IDL and test code for samr_RidToSid()
- completed the IDL and test code for the various set user password
  mechanisms in samr. Three password mechanisms are now working, the
  UserInfo24 method, the OemChangePasswordUser2() method (which only
  sets the LM password) and the ChangePasswordUser2() method which sets
  both the LM and NT passwords.

- updated some crypto routines to support the password change tests
(This used to be commit 051efa2abf9d1fbbf783df411c02f2714027f813)
2007-10-10 12:51:19 -05:00