Age | Commit message (Collapse) | Author | Files | Lines |
|
where the idl was something like this:
uint32 size;
[size_is(size+1)] wchar_t *string;
we always need a pair of NDR_PULL_NEEDED_BYTES() and ndr_pull_advance(),
with the same size passed in.
metze
(This used to be commit 8eb75bd5ac5869f11f930ec872ec8a46fba9361b)
|
|
as it isn't needed
- parse some more DsAddEntry() errors
- add some more attid constands so that all attribute that are needed
for a DsAddEntry in the DC Domain Join are mapped
- add value() for __ndr_size, to more attribute container, so that the caller
doesn't need to fill them in, that was the reason for getting an NDR_FAULT
metze
(This used to be commit a9a1a6f861c8db626b3232f057ef0b9c3d0ad1b0)
|
|
this uses a trick with talloc_get_type() to workaround using [value()] vars
in [subcontext_size()]
metze
(This used to be commit 93065f2d3439bceeaa7c2a09679cc6d81472150d)
|
|
these can require more elements in the local charset (usually UTF8) then
in the wire one.
(This used to be commit a0e63c2691f596cdacbc2e15404829ebca075429)
|
|
(This used to be commit 9be03c057e229e9cf7fe8b1db04adb9d2f1efc64)
|
|
buffer is
larger then the string to be pushed.
(This used to be commit 70b52e26f31b00637ed7f90f77ff0b2794dad729)
|
|
- with this it's also possible to talloc_free() the ndr_pull structure
and talloc_steal(ndr->current_mem_ctx); to fetch the whole data of the hierachical tree
- if the toplevel struct is a valid talloc pointer it's also possible to use
NDR_PULL_SET_MEM_CTX(ndr, mem_ctx); to the the toplevel pointer with the struct pointer
(NOTE: no callers are using this yet, but they shortly will)
metze
(This used to be commit 1a2b8369586642cc9bc15d015c1e4256c3a92732)
|
|
- unify the handling of subcontext, compression and obfucation
metze
(This used to be commit 09de7e0af7f9f7539cf63791baf90ac202536176)
|
|
This copes with the
case of size_is(*size) where size is NULL, and the array is NULL
(This used to be commit 56769b4b1d900cce60cd35298b642a85e4eddfee)
|
|
this copes with 2 more situations:
1) where the array is NULL, which would previously be coped with by a
if (ptr) check, but now in the deferred array bounds checking needs
to look at the array variable in the ndr code. Not nice.
2) nest the array checking along with the SCALARS vs BUFFERS checks, ensuring we don't
do array bounds checking for a buffer when in scalars only mode
(This used to be commit ad1b9867a5a14bc9ed2e1a5eb8f05bb2046bc645)
|
|
(This used to be commit 1ae255aba44f4444486ae5bc634c8ab1a6328c87)
|
|
(This used to be commit b9b8714297401664fcf8380d4c90ee22b7341d35)
|
|
(This used to be commit 8637a85e6a349cce15a298154500921e9a0183a3)
|
|
Values that are deferred but don't contain deferred data don't
need NDR_BUFFERS
Parse::Pidl::Samba::NDR::Parser:
Only use manually written array access functions when the array
functions are faster then the autogenerated ones. Makes ndr_basic.c
a bit shorter.
(This used to be commit cad40815dcfb7cdcab13bd0cd204ef8711605ef3)
|
|
(This used to be commit d2c928548336682ffd3dda873f9957f3d041f0af)
|
|
S390. This is an attempt to avoid the panic we're seeing in the
automatic builds.
The main fixes are:
- assumptions that sizeof(size_t) == sizeof(int), mostly in printf formats
- use of NULL format statements to perform dn searches.
- assumption that sizeof() returns an int
(This used to be commit a58ea6b3854973b694d2b1e22323ed7eb00e3a3f)
|
|
(This used to be commit f93bd0ced6b0b2b4ee3bf15e53ba30138fd6b533)
|
|
by the new ldb code dealing with binary records, but is also a good
defensive strategy in general
(This used to be commit 17decd129928290a6916a1d1cec73dad924d64f8)
|
|
in the generated code from pidl generated a warning)
(This used to be commit 22f7fd76343646a149937fcdc891a98a516bf820)
|
|
(This used to be commit 1536d66662193568a51793d65fb319882db9d089)
|
|
ndr strings
(This used to be commit aa0e1d6699959571963d6e6fb455b33c4436dcdf)
|
|
metze
(This used to be commit cdd03fe87d0120ab3e18566bfc20df5955f9fb3c)
|
|
- we now use an ndr_token_list, for the nbt string label pointer offsets
this avoids to scan the whole buffer
- we need to check for already send string on a per component basis
not only for the fullname
e.g.
w2k3 response this in the CLDAP netlogon replies
forest: w2k3.vmnet1.vm.base
dns_name: sub1.
pdc_dns_name: w2k3-104.
and this will be interpreted like
forest: w2k3.vmnet1.vm.base
dns_name: sub1.w2k3.vmnet1.vm.base
pdc_dns_name: w2k3-104.w2k3.vmnet1.vm.base
metze
(This used to be commit d18303a0e27643285ffaf100eeddea2f9555c9db)
|
|
- allow comparison function to be passed for ndr_token_retrive_cmp_fn(),
this is for matching the keys, if NULL is passed, the old behavior
tok->key == key is used
metze
(This used to be commit 019f3dc767ef703768df3acdbbd80808c122855c)
|
|
- add a new 'sptr' (simple-full) pointer type to simulate what we need to support pipes
like epmapper and mgmt that uses 'ptr' full pointer in their spec
- I runned make test and test_w2k3.sh with this, all fine
does we have any other pipe using 'unique' pointer where we need 'ptr'?
btw: jelmer, what does 'ignore' pointers do? they are allowed in pidl but not implemented!
metze
(This used to be commit d19068bfb2e3ff5d88bc3b76d5cef93417c7f218)
|
|
this is ifdef'ed out currently because we use 'unique' pointers in the epmapper pipe,
where we should use 'ptr' full pointers.
metze
(This used to be commit ccc9d9267a60287eff1fb26132aa7cae3b39dcee)
|
|
metze
(This used to be commit 25f5d1db296b03b62869c8467b652a0df3107222)
|
|
memory checks
- move to handmodified pull/push code for PAC_BUFFER
to get the _ndr_size field and the subcontext size right
- after looking closely to the sample w2k3 PAC in our torture test (and some more in my archive)
I found out that the first uint32 before the netr_SamInfo3 was also a pointer,
(and we passed a NULL pointer there before, so I think that was the reason why the windows clients doesn't want our PAC)
w2k3 uses this for unique pointers:
ptr = ndr->ptr_count * 4;
ptr |= 0x00020000;
ndr->ptr_count;
- do one more pull/push round with the sample PAC
metze
(This used to be commit 0eee17941595e9842a264bf89ac73ca66cea7ed5)
|
|
any more.
Perhaps like minimal_includes.pl, we should have a way to find these
automaticly. Hmm...
Andrew Bartlett
(This used to be commit d13b9f548e9d3696505178476d2615835cae8fe2)
|
|
- the out subcontext's need to have a fixed size of r->in.offered,
to make windows clients happy
metze
(This used to be commit 054e1ca434b2f81de199eeb41cb6233524fc5779)
|
|
the full FIXLEN
metze
(This used to be commit d8175b01db69436d8af64b97d7b7beca4ba4b552)
|
|
structure in ndr_push_*() and ndr_print_*(). The push and print
functions really should not modify the structure.
metze, to make this work I had to change your spoolss hand
marshaller. Can you please check it is OK? I think that the IN and OUT
sides of that function are not ever called on the same structure, so I
think that attempt at remembering the value by assigning to
r->in._offered was not doing anything anyway, but please correct me if
I have misunderstood it.
If you really do need to remember something on those structures I'd
suggest the ndr_token_store() and ndr_token_retrieve() functions,
which are used by pidl for just this sort of thing.
(This used to be commit eee528be97fa43ca53bdc5652b4d29a0a2caf563)
|
|
(This used to be commit 72efb695291f0ad3cdc80daa9f979454f6a81c04)
|
|
(This used to be commit 7012e10bb6252a7e602e80f05c914a783610088c)
|
|
sense. Not
used anywhere yet.
(This used to be commit a73a35cfc7b5b92cd95bd0d0fbd64d04acecccf3)
|
|
- add somemore checks in the Emun*() pull/push glue code
metze
(This used to be commit 075fe1eb4b6b2d00cdd9965656598aaec53da638)
|
|
- use the same names as etherel (offered,needed) for the buffer sizes
(and they are really independently used)
metze
(This used to be commit f5532a5b74e972f44ed8aa19ee9c5851a4b40f65)
|
|
we got
in the recv code..., this makes the w2k3 printserver properties gui happy:-)
metze
(This used to be commit 0130b0d90223bb7278f924e1b1370778f25d0d91)
|
|
- fix allocates [out,ref] pointers to be passed between functions
metze
(This used to be commit 9a1760c618b10ee08b4e6ad21eb0c7e757ae9dea)
|
|
metze
(This used to be commit 73d597bacf83492ed3da2307dd6785548b903b39)
|
|
metze
(This used to be commit c0462d60b58471b0804450d31a11e603519b45e4)
|
|
([validate,bigendian] is still failing badly...)
metze
(This used to be commit da319b7bc366bb40d9d290efe17436c8fd5a0911)
|
|
now...
metze
(This used to be commit d2eb1a68447ff71adfc56c60d26753e12596a1a6)
|
|
metze
(This used to be commit 58a214d98fc7a2b46a0876e57e05dec82438bc53)
|
|
(maybe we could add them to elements latter...)
with this property all relative pointers from inside the struct or union
are relative to the struct/union start
metze
(This used to be commit c0dd18326c058e3e218d43f48ecff418f4b0b51e)
|
|
metze
(This used to be commit 95d3286a327467c32ee25fcac913fc5f3113a74b)
|
|
with a better aproach later
metze
(This used to be commit 9a4e9f68fbddaae3fc86e30d39b69fc76261c0ea)
|
|
the spoolss_Enum* functions
they will be later used in the spoolss server code
metze
(This used to be commit 539fe32cedb73be0520675a1052cba476e4974d2)
|
|
parsing code for the spoolss_Enum* functions, there still same handwritten code needed
but just to stack the autogenerated code into the correct way
metze
(This used to be commit 155d18e8b78afebfb4a84e43e3b4d8fc6c9cc4e2)
|
|
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
|