1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-09 09:57:48 +03:00

351 Commits

Author SHA1 Message Date
Stefan Metzmacher
87d5e061e0 r4102: more uint64 vs HYPER_T fixes
NOTE:
 [u]int64 uses 4 Byte alignment
 and HYPER_T uses 8 Byte alignment

metze
(This used to be commit 717454eb2fd2bf90e67074acefdae5304cd7433f)
2007-10-10 13:06:26 -05:00
Andrew Tridgell
f40f35fa0a r4098: catch null guid string so RPC-DRSUAPI works against my server
(This used to be commit c4c83f04f55d206716380330d2a4d2b31f893346)
2007-10-10 13:06:26 -05:00
Andrew Tridgell
58c326809a r4052: fixed a bunch of code to use the type safe _p allocation macros
(This used to be commit 80d15fa3402a9d1183467463f6b21c0b674bc442)
2007-10-10 13:06:18 -05:00
Andrew Tridgell
c9932a3a92 r4051: use talloc_array() instead of talloc() when allocating arrays in auto-generated ndr code
(This used to be commit 90cdfd921e1a6f8806fe94bba61f1bbaa79c79f1)
2007-10-10 13:06:18 -05:00
Stefan Metzmacher
3558d8b40d r3997: fix STR_CHARLEN pull case
metze
(This used to be commit 623411f74ee766dee2170949b118216387779929)
2007-10-10 13:06:12 -05:00
Stefan Metzmacher
05def77d80 r3984: success full parse the repsFrom/repsTo LDAP fields
metze
(This used to be commit 56c66f4a090b1efca011fc2fc9880c4d93da164c)
2007-10-10 13:06:11 -05:00
Stefan Metzmacher
e900618654 r3972: use GUID_* naming context and move GUID_* functions to one place
metze
(This used to be commit 523e6acf4fec5d4946fa7c0c89f40d7d712c9f3a)
2007-10-10 13:06:09 -05:00
Stefan Metzmacher
e547588368 r3956: start to decode the repsFrom and repsTo fileds but not ready
metze
(This used to be commit 44f168c44de908fdf38b39aae8bf10e80206410a)
2007-10-10 13:06:07 -05:00
Stefan Metzmacher
717c8bc795 r3869: in the NDR encoded replPropertyMetaData attribute in ADS
I see a new 64 bit time field which are seconds since 1601,

this will be mapped to NTTIME by th eparsing code

+#define NTTIME_1sec NTTIME

metze
(This used to be commit db35f3b0f99943311ff8b797e8336616dab28220)
2007-10-10 13:05:59 -05:00
Jelmer Vernooij
a0fa682faa r3861: - Put ndr and rpc client code in seperate files
- Add some const
(This used to be commit a00bda88e1b6abdc36e5aa8c2a35f64855f67c96)
2007-10-10 13:05:58 -05:00
Andrew Tridgell
012be92f0a r3830: unified the query/set security descriptor code with the rest of the
queryfileinfo/setfileinfo logic, so querying/setting a security
descriptor is treated as just another file query/set operation.

This will allow NTVFS backends to see the query/set security
descriptor operations as RAW_FILEINFO_SEC_DESC and
RAW_SFILEINFO_SEC_DESC operations.
(This used to be commit f68a6b6b915c37e48c42390c1e74c2d1c2636fa9)
2007-10-10 13:05:57 -05:00
Stefan Metzmacher
856ee66537 r3810: create a LIB_SECURITY subsystem
- move dom_sid, security_descriptor, security_* funtions to one place
  and rename some of them

metze
(This used to be commit b620bdd672cfdf0e009492e648b0709e6b6d8596)
2007-10-10 13:05:56 -05:00
Stefan Metzmacher
c3eb37f292 r3787: a function to generate a random GUID
metze
(This used to be commit 8bd2e3cb4e5123a3e26965b8535e16ee18005714)
2007-10-10 13:05:53 -05:00
Stefan Metzmacher
536601aeba r3785: this strings are not const
metze
(This used to be commit 436da375a2a815926aaa0565120a4750ead37cb0)
2007-10-10 13:05:53 -05:00
Jelmer Vernooij
8c2e179d47 r3611: DCOM client support works!!
The torture test DCOM-SIMPLE now successfully does an
IStream_Read and a IStream_Write call.

This test can now be run successfully against the "Simple DCOM" Visual
Studio example.

(You have to quote out line 337 in pidl. pidl complains if the variable
 that contains the array size follows the array. I still need to fix this
 properly)

Next goals:
 - Clean up code
 - Server side support
 - Support custom marshalling
 - Support DCOM interfaces in files other then dcom.idl
(This used to be commit 8693344772a9b700533179f4bacfe27ec27dfcfe)
2007-10-10 13:05:39 -05:00
Jelmer Vernooij
f2d715cd85 r3606: More DCOM fixes:
- OXID tables work now. IOXIDResolver is used if there is used for getting a STRINGBINDING if none is known yet
 - Add custom dissectors for STRINGARRAY and DUALSTRINGARRAY. If there's a way to get rid of these later on (by supporting them thru pidl somehow), I'd be happy to use that instead of doing it manually.

I can now get to the point where we have created an object and are connected to
it. The only thing left to do is being able to set the Object UUID properly..
(This used to be commit 54e1e5edca50d3cd496c080715e84ec62cb2a10c)
2007-10-10 13:05:38 -05:00
Stefan Metzmacher
eee5cc3b9a r3582: more gcc-4.0 signedness fixes
metze
(This used to be commit 07405f1c67e9df8a972e17f5bdaf312977960474)
2007-10-10 13:05:35 -05:00
Andrew Tridgell
12f4a44cf5 r3549: added support for DOS extended attribute lists (name/value pairs)
stored in posix xattrs
(This used to be commit bad6a88371264cffce2bf5d6ce904b7b357081de)
2007-10-10 13:05:31 -05:00
Andrew Tridgell
9fe5fa11d6 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.
(This used to be commit c54253ed1b7dce1d14f43e747da61089aea87094)
2007-10-10 13:05:30 -05:00
Stefan Metzmacher
e0e6e0f99d r3512: - support DsCrackName GUID strings ('{faedf4f9-0de8-4582-b8b6-c475efefbe5a}')
- resolve the GUID's we got in DsGetDomainControllerInfo in the DsCrackNames test

metze
(This used to be commit f6310695821a7e750dd37936a6145232d81ab413)
2007-10-10 13:05:23 -05:00
Stefan Metzmacher
a2fd2488c7 r3484: - add support for conformant string arrays at the end of a struct
- add support for strings where the length excludes the NULLTERM

metze
(This used to be commit 8251d8b3e5af351972aa41aed63f7a7d2640910e)
2007-10-10 13:05:21 -05:00
Andrew Tridgell
3643fb1109 r3463: separated out some more headers (asn_1.h, messages.h, dlinklist.h and ioctl.h)
(This used to be commit b97e395c814762024336c1cf4d7c25be8da5813a)
2007-10-10 13:05:17 -05:00
Jelmer Vernooij
6ef03e7a84 r3432: Support WERROR's in arguments (not just as return type). Some of
the DCOM calls are wrappers around several local calls, so you get things like:

WERROR foobar ( [in] int num_ifaces,
			   [in,size_is(num_ifaces)] IID *ifaces,
			   [out,size_is(num_ifaces)] WERROR *results);
(This used to be commit 0873bf2cbe3589988e518cf68ad4d14343b9240b)
2007-10-10 13:05:10 -05:00
Andrew Tridgell
90067934cd r3428: switched to using minimal includes for the auto-generated RPC code.
The thing that finally convinced me that minimal includes was worth
pursuing for rpc was a compiler (tcc) that failed to build Samba due
to reaching internal limits of the size of include files. Also the
fact that includes.h.gch was 16MB, which really seems excessive. This
patch brings it back to 12M, which is still too large, but
better. Note that this patch speeds up compile times for both the pch
and non-pch case.

This change also includes the addition iof a "depends()" option in our
IDL files, allowing you to specify that one IDL file depends on
another. This capability was needed for the auto-includes generation.
(This used to be commit b8f5fa8ac8e8725f3d321004f0aedf4246fc6b49)
2007-10-10 13:05:09 -05:00
Andrew Tridgell
37fffa54cf r3424: don't run mkproto.pl on pidl generated code, instead rely on pidl generating the
prototypes itself
(This used to be commit e694aeefe7c725d417abdd3c48d16ff1d932c223)
2007-10-10 13:05:08 -05:00
Andrew Tridgell
74dd7d9062 r3395: added support for "string32" type, to fix the fixed width string
problem that tim found.
(This used to be commit 2cf35cb4d2513a7be46065e12c6fd1e2b90f4b8a)
2007-10-10 13:05:05 -05:00
Andrew Bartlett
6593327948 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
(This used to be commit 224b59edba7c00ad515b4c5e3e9a886700247ad4)
2007-10-10 13:05:00 -05:00
Andrew Tridgell
e481385391 r3322: fixed a bunch of warnings in the build, including one case where it was a real bug
(This used to be commit 02d5d0f685e44bd66aff4a007f0bf34c8f915574)
2007-10-10 13:04:55 -05:00
Andrew Bartlett
31e96d8def r3073: Fix bug in the handling of null-terminated ASCII strings in RPC.
Because we didn't count the null terminator, we would not move past it
in the packet.

Andrew Bartlett
(This used to be commit 8b38bffc7098610c469ab61b7e0e6884f046f286)
2007-10-10 13:01:55 -05:00
Tim Potter
3406ac3092 r3036: Add function to pull an array of structures. Abstracts away the
individual routines in ndr_spoolss_buf.c.
(This used to be commit e080a2483da61ee95d21b0355471a4af13c20a81)
2007-10-10 13:00:01 -05:00
Jelmer Vernooij
fe15b46d61 r2990: Add support to pidl for autogenerating ndr_size_*() functions. Adding
the [gensize] property to a struct or union will make pidl generate a
ndr_size_*() function.

(not all nasty bits of NDR are completely covered yet by the
 ndr_size*() functions, support for those will be added when necessary)

I also have a local patch (not applied now) that simplifies the pidl output
and eliminates the number of functions required. It would, however, make
pidl more complex.
(This used to be commit 7c823f886afd0c4c6ee838f17882ca0658417011)
2007-10-10 12:59:55 -05:00
Andrew Tridgell
42c810cea6 r2989: fix the printing of unions with negative cases when :print is used
(This used to be commit d8152f896119418d95d7697cc2ca23f5319c32a9)
2007-10-10 12:59:55 -05:00
Andrew Tridgell
f1eaf60fa3 r2987: added support for signed 32 bit integers in pidl
(This used to be commit 24122eb93e39de8db3675618b6c227c95eb58d9c)
2007-10-10 12:59:54 -05:00
Andrew Tridgell
da5cbd0886 r2968: fixed the byte order problem with the new RHS parsing on ncacn_ip_tcp
(This used to be commit cc00f9b6b87783d189df00de0ce9ae92b907e21a)
2007-10-10 12:59:53 -05:00
Andrew Tridgell
8d0f79595b r2948: added support for the [range(low,high)] attribute in pidl. This allows
range checking of any integer value, to help protect against denial of
service attacks (which could otherwise cause large memory allocations)
(This used to be commit dbe6430d78f1b9aa59969074077e4afa5adf7570)
2007-10-10 12:59:50 -05:00
Andrew Tridgell
d186e63b01 r2910: I noticed that the samr torture test was doing its own DOS->UNIX
string conversion. For RPC, all string conversions are supposed to be
done by the NDR layer, using string flags set in the IDL. The reason
this wasn't working is that I had been too lazy to do the STR_ASCII
string types properly at the NDR layer when initially writing
ndr_basic.c.

This commit fixes the ndr_basic code properly to do all ASCII
varients, by re-using the non-ascii code and a "byte_mul" local
variable. I have also removed the manual string conversion in the SAMR
torture test code.
(This used to be commit aad0e7e9d890bb56447f1f933b8f2bb78a3ee269)
2007-10-10 12:59:47 -05:00
Andrew Tridgell
7d32679e96 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;
}
(This used to be commit 814881f0e50019196b3aa9fbe4aeadbb98172040)
2007-10-10 12:59:39 -05:00
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 Tridgell
bdfc5db41d r2625: use talloc_p, not talloc when possible (when allocating a structure in particular), as it gives us type checking.
(This used to be commit dabc7ddd9f940db414d1c3c7bf3cebcd108fbf6f)
2007-10-10 12:59:13 -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
Tim Potter
8293df91bc r2247: talloc_destroy -> talloc_free
(This used to be commit 6c1a72c5d667245b1eec94f58e68acd22dd720ce)
2007-10-10 12:58:34 -05:00
Andrew Tridgell
13f44bbacb r2209: patch from volker to add EnumPorts spoolss IDL and test code
the ndr->offset=0; stuff is ugly. We need a better way to handle this.
(This used to be commit e909bfa708aeceeaa37faa6f6dff0274f8ac7920)
2007-10-10 12:58:31 -05:00
Volker Lendecke
0b01bdf9a3 r2208: little attempt to (almost) fix spoolss relative
(This used to be commit ef5414676ea07004aaa78d5f4c1746b3c8669d16)
2007-10-10 12:58:31 -05:00
Andrew Tridgell
54dd7bccd2 r2206: another (untested) attempt to make RELATIVE_CURRENT work for volker,
plus removed unused ndr_pull_relative() function

once volker commits a test for this I'll be able to ensure it really works as expected
(This used to be commit 8ffe136ad2be52f3504d73ead0785c9c5f5d8770)
2007-10-10 12:58:31 -05:00
Andrew Tridgell
d0aee368a1 r2205: fixed an incorrect cast that broke relative strings in spoolss
(This used to be commit d2d3433de1c1e1bc757381e9736147cc24fe8cf0)
2007-10-10 12:58:31 -05:00
Andrew Tridgell
6a2422932b r2204: added [flag(RELATIVE_CURRENT)] to change [relative] pointer behaviour
for this struct and all sub-structures to be like spoolss relative
pointers (where offset is relative to current position).

volker will test this for me :)
(This used to be commit bd45329a3fb55a5d9f006ad601ae26a80b9a563f)
2007-10-10 12:58:31 -05:00
Andrew Tridgell
4d390df586 r2180: added RPC flags "padcheck" which enables checking of all received pad
bytes to make sure they are zero. Non-zero values usually indicate one
of two things:

 - the server is leaking data through sending uninitialised memory
 - we have mistaken a real field in the IDL for padding

to differentiate between the two you really need to run with
"print,padcheck" and look carefully at whether the non-zero pad bytes
are random or appear to be deliberate.
(This used to be commit 7fdb778f81f14aaab75ab204431e4342a462957a)
2007-10-10 12:58:29 -05:00
Andrew Tridgell
31c1c7846f r2159: converted samba4 over to UTF-16.
I had previously thought this was unnecessary, as windows doesn't use
standards compliant UTF-16, and for filesystem operations treats bytes
as UCS-2, but Bjoern Jacke has pointed out to me that this means we
don't correctly store extended UTF-16 characters as UTF-8 on
disk. This can be seen with (for example) the gothic characters with
codepoints above 64k.

This commit also adds a LOCAL-ICONV torture test that tests the first
1 million codepoints against the system iconv library, and tests 5
million random UTF-16LE buffers for identical error handling to the
system iconv library.

the lib/iconv.c changes need backporting to samba3
(This used to be commit 756f28ac95feaa84b42402723d5f7286865c78db)
2007-10-10 12:58:27 -05:00
Stefan Metzmacher
eed08c84e2 r2121: fix compiler warning
metze
(This used to be commit 2de544181ec75da63fdcd5ecdde9e6a533603a38)
2007-10-10 12:58:26 -05:00
Andrew Tridgell
e7f36ff1a5 r2100: rework the dcerpc client side library so that it is async. We now
generate a separate *_send() async function for every RPC call, and
there is a single dcerpc_ndr_request_recv() call that processes the
receive side of any rpc call. The caller can use
dcerpc_event_context() to get a pointer to the event context for the
pipe so that events can be waited for asynchronously.

The only part that remains synchronous is the initial bind
calls. These could also be made async if necessary, although I suspect
most applications won't need them to be.
(This used to be commit f5d004d8eb8c76c03342cace1976b27266cfa1f0)
2007-10-10 12:58:24 -05:00