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

134 Commits

Author SHA1 Message Date
Andrew Bartlett
6e6cc6fb98 r3686: The results of some work on the NETLOGON pipe:
Break out the samsync tests from RPC-NETLOGON into a new RPC-SAMSYNC,
that will cross-verify all the values.

Add support for the way netlogon credentials are shared between the
pipe that sets up schannel and the pipe that is encrypted with it.

Test this support, by calling both NETLOGON and SAMR operations in the
RPC-SCHANNEL test.

Move some of the Netlogon NEG flags into the .idl, now we have an idea
what a few of them really are.

Rename the sam_pwd_hash into a name that has meaning (all other crypto
functions were renamed in Samba4 ages ago).

Break out NTLMv2 functionality for operation on the NT hash - I intend
to do NTLMv2 logins in the samsync test in future, and naturally I
only have the hash.

Andrew Bartlett
2007-10-10 13:05:43 -05:00
Andrew Bartlett
75ff351faf r3655: As required by the new torture test, add the LM session key output
parameter to SMBNTLMv2encrypt().

Andrew Bartlett
2007-10-10 13:05:42 -05:00
Andrew Tridgell
c54253ed1b r3545: initial support for using extended attributes to hold extended dos attributes of files.
I decided to use IDL/NDR to encode the attribute, as it gives us a
simple way to describe and extend the saved attributes.

The xattr code needs to hook into quite a few more places in the pvfs
code, but this at least gets the basics done. I will start encoding
alternate data streams streams, DOS EAs etc soon using the same basic
mechanism.

I'll probably stick to "version 1" for the xattr.idl for quite a while
even though it will be changing, as I don't expect anyone to be
deploying this in production just yet. Once we have production users
we will need to keep compatibility by supporting all the old version
numbers in xattr.idl.
2007-10-10 13:05:30 -05:00
Andrew Tridgell
7dc58dc01e r3476: fixed some const warnings 2007-10-10 13:05:18 -05:00
Andrew Tridgell
b97e395c81 r3463: separated out some more headers (asn_1.h, messages.h, dlinklist.h and ioctl.h) 2007-10-10 13:05:17 -05:00
Andrew Tridgell
3f75117db9 r3462: separate out the crypto includes 2007-10-10 13:05:16 -05:00
Andrew Tridgell
7b7477ac42 r3453: - split out the auth and popt includes
- tidied up some of the system includes

- moved a few more structures back from misc.idl to netlogon.idl and samr.idl now that pidl
  knows about inter-IDL dependencies
2007-10-10 13:05:13 -05:00
Andrew Tridgell
264ce91810 r3447: more include/system/XXX.h include files 2007-10-10 13:05:12 -05:00
Andrew Tridgell
73ea8ee6c2 r3441: some include file cleanups and general housekeeping 2007-10-10 13:05:11 -05:00
Andrew Tridgell
386ac565c4 r3419: moved the libcli/raw structures into libcli/raw/libcliraw.h
and made them private
2007-10-10 13:05:07 -05:00
Andrew Bartlett
224b59edba r3358: Try to put all the basic struct dom_sid manipulation functions in one
place.  (I always have trouble finding one half or the other).

Andrew Bartlett
2007-10-10 13:05:00 -05:00
Jelmer Vernooij
1d374cdeb0 r3331: Add string descriptions for a couple more WERROR's 2007-10-10 13:04:56 -05:00
Andrew Tridgell
02d5d0f685 r3322: fixed a bunch of warnings in the build, including one case where it was a real bug 2007-10-10 13:04:55 -05:00
Andrew Tridgell
7f2c771b0e r3278: - rewrote the client side rpc connection code to use lib/socket/
rather than doing everything itself. This greatly simplifies the
  code, although I really don't like the socket_recv() interface (it
  always allocates memory for you, which means an extra memcpy in this
  code)

- fixed several bugs in the socket_ipv4.c code, in particular client
  side code used a non-blocking connect but didn't handle EINPROGRESS,
  so it had no chance of working. Also fixed the error codes, using
  map_nt_error_from_unix()

- cleaned up and expanded map_nt_error_from_unix()

- changed interpret_addr2() to not take a mem_ctx. It makes absolutely
  no sense to allocate a fixed size 4 byte structure like this. Dozens
  of places in the code were also using interpret_addr2() incorrectly
  (precisely because the allocation made no sense)
2007-10-10 13:04:49 -05:00
Andrew Tridgell
3f247ec21c r3206: - added the reverse map for ERRbaduid to NT_STATUS_INVALID_HANDLE
- force disable spnego in the RAW-CONTEXT test (it breaks the test)
2007-10-10 13:04:41 -05:00
Andrew Tridgell
2c852539ed r3197: fixed error code mapping for ENOTDIR 2007-10-10 13:04:40 -05:00
Andrew Tridgell
375a9a1347 r3131: - make map_nt_error_from_unix() return NT_STATUS_UNSUCCESSFUL if errno is 0
- more consistent checking for system call return values in simple backend
2007-10-10 13:02:24 -05:00
Stefan Metzmacher
c79bbe54b4 r3044: resolve the error code for WERR_DS_OBJ_NOT_FOUND to the name
metze
2007-10-10 13:01:53 -05:00
Stefan Metzmacher
ad7b0385cf r2883: set BOOL to the internal values not the wire ones
metze
2007-10-10 12:59:42 -05:00
Andrew Tridgell
814881f0e5 r2857: this commit gets rid of smb_ucs2_t, wpstring and fpstring, plus lots of associated functions.
The motivation for this change was to avoid having to convert to/from
ucs2 strings for so many operations. Doing that was slow, used many
static buffers, and was also incorrect as it didn't cope properly with
unicode codepoints above 65536 (which could not be represented
correctly as smb_ucs2_t chars)

The two core functions that allowed this change are next_codepoint()
and push_codepoint(). These functions allow you to correctly walk a
arbitrary multi-byte string a character at a time without converting
the whole string to ucs2.

While doing this cleanup I also fixed several ucs2 string handling
bugs. See the commit for details.

The following code (which counts the number of occuraces of 'c' in a
string) shows how to use the new interface:

size_t count_chars(const char *s, char c)
{
	size_t count = 0;

	while (*s) {
		size_t size;
		codepoint_t c2 = next_codepoint(s, &size);
		if (c2 == c) count++;
		s += size;
	}

	return count;
}
2007-10-10 12:59:39 -05:00
Stefan Metzmacher
a62fbcb30f r2749: add asn1_read_implicit_Integer()
metze
2007-10-10 12:59:30 -05:00
Andrew Tridgell
8dc23821c9 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.
2007-10-10 12:59:20 -05:00
Andrew Bartlett
dfecb01506 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).
2007-10-10 12:59:05 -05:00
Andrew Bartlett
0e081ecb9d 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
2007-10-10 12:59:03 -05:00
Andrew Tridgell
4e4859c06b r2520: - finished implementing the server side of the old style search requests 2007-10-10 12:59:01 -05:00
Tim Potter
dff6262e4f r2516: Remove duplicate line. 2007-10-10 12:59:01 -05:00
Andrew Bartlett
59e361f7cc r2507: Allow a case-insensitive lookup when converting strings into NTSTATUS
values.

Andrew Bartlett
2007-10-10 12:59:00 -05:00
Andrew Tridgell
b719199963 r2498: added STATUS_NO_MORE_FILES to nt status codes that we can map to a string 2007-10-10 12:58:58 -05:00
Stefan Metzmacher
492a00d909 r2347: merge LDAP ASN.1 fixes from trunk
metze
2007-10-10 12:58:45 -05:00
Volker Lendecke
53f58c053b r2173: Fix asn1 BOOLEANs. Thanks to Love Hornquist-Astrand.
Volker
2007-10-10 12:58:29 -05:00
Stefan Metzmacher
46762c9ee0 r2166: sync the asn1 stuff with trunk
metze
2007-10-10 12:58:28 -05:00
Stefan Metzmacher
bc4c188362 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
2007-10-10 12:58:26 -05:00
Stefan Metzmacher
79bee828fb 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.
2007-10-10 12:58:26 -05:00
Andrew Tridgell
e0bda61112 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.
2007-10-10 12:58:25 -05:00
Andrew Bartlett
0237389ce7 r2099: Get rid of another private ARCFOUR implementation from the codebase.
Andrew Bartlett
2007-10-10 12:58:24 -05:00
Andrew Tridgell
c0862278ca r2037: switched the asn.1 code to use talloc 2007-10-10 12:58:19 -05:00
Andrew Bartlett
4294be4405 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
2007-10-10 12:58:15 -05:00
Stefan Metzmacher
267edf1c0b r1856: - move asn1 functions to asn1.c
- merge some stuff from trunk

metze
2007-10-10 12:58:02 -05:00
Stefan Metzmacher
01626ed381 r1851: if we try to peek a subtag, check if the parent tag has remaining data
metze
2007-10-10 12:58:02 -05:00
Simo Sorce
e6a6c0737a r1771: OK Let's add tests for ldap.
Thanks to Metze and Volker for their unvaluable support :)
2007-10-10 12:57:56 -05:00
Stefan Metzmacher
48939adca1 r1756: merge volkers ldap client lib to samba4 for simo to start with the
ldap server code

it's not compiled in yet...

metze
2007-10-10 12:57:54 -05:00
Andrew Bartlett
6da7b65851 r1723: Make sure we bail out on error in reading a OID.
Andrew Bartlett
2007-10-10 12:57:50 -05:00
Stefan Metzmacher
8441750fd9 r1654: rename cli_ -> smbcli_
rename CLI_ -> SMBCLI_

metze
2007-10-10 12:57:47 -05:00
Andrew Bartlett
b97d3cb2ef 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
2007-10-10 12:57:35 -05:00
Andrew Bartlett
5bce188d42 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.
2007-10-10 12:56:52 -05:00
Volker Lendecke
8c997a2ad2 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
2007-10-10 12:56:51 -05:00
Stefan Metzmacher
52e2d03825 r1274: revert -r 1239 as discussed with abartlet
metze
2007-10-10 12:56:48 -05:00
Tim Potter
de5984c956 r1268: varient -> variant 2007-10-10 12:56:46 -05:00
Stefan Metzmacher
b25dd341e0 r1239: move the old msrpc_<gen|parse>() functions to ndr_<push|pull>_format_blob()
simular to ndr_<push|pull>_struct_blob()

metze
2007-10-10 12:56:46 -05:00
Andrew Bartlett
902af49006 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
2007-10-10 12:56:44 -05:00