Rob Shearman
3a13de3115
rpcrt4: Add a trace to NdrBaseTypeMemorySize.
2007-12-08 19:58:03 +01:00
Rob Shearman
7ae1d44816
rpcrt4: Implement PointerMemorySize.
2007-12-08 19:57:55 +01:00
Rob Shearman
8348f0413d
rpcrt4: Fix NdrConformantStructUnmarshall to use buffer memory if applicable and to reuse memory for embedded pointers.
2007-12-08 19:57:46 +01:00
Rob Shearman
a5f9ed81e3
rpcrt4: Fix NdrFixedArrayUnmarshall to use buffer memory if applicable and to reuse memory for embedded pointers.
2007-12-08 19:57:39 +01:00
Rob Shearman
abbceb137a
rpcrt4: Fix NdrConformantArrayUnmarshall to use buffer memory if applicable and to reuse memory for embedded pointers.
2007-12-08 19:57:32 +01:00
Rob Shearman
ba6aec70ca
rpcrt4: Implement NdrConformantStructFree.
2007-12-07 17:06:05 +01:00
Rob Shearman
2ebee18198
rpcrt4: Improve PointerFree to not free buffer memory.
2007-12-07 16:34:17 +01:00
Rob Shearman
13e47d762a
rpcrt4: Set the memory pointer in NdrBaseTypeUnmarshall to the buffer if we're unmarshalling on a server without memory being passed in.
2007-12-05 13:49:08 +01:00
Rob Shearman
17132f7e1f
rpcrt4: Set fMustAlloc to TRUE when unmarshalling an object pointer.
2007-12-05 13:48:59 +01:00
Rob Shearman
2a9fae7565
rpcrt4: Set the destination pointer in PointerUnmarshall before calling the referenced type's unmarshalling routine.
...
When a pointer that is dereferenced is encountered then this can result
in a stale pointer (i.e. the one that is marshalled into the buffer for
the embedded pointer unmarshalling case) being used instead of the one
that was intended.
2007-12-04 18:18:01 +01:00
Rob Shearman
d8e467b0fd
rpcrt4: Reverse the conditions for which *pPointer is assigned base_ptr_val in PointerUnmarshall.
...
In one condition (fMustAlloc == TRUE), base_ptr_val may be uninitialised
and so cause a valgrind warning. Reversing the check is harmless and
doesn't result in a performance decrease.
2007-12-03 13:10:21 +01:00
Rob Shearman
c735a14788
rpcrt4: Fix NdrSimpleStructUnmarshall to cope with [in, out] embedded pointers.
2007-11-30 11:56:30 +01:00
Rob Shearman
b676309db3
rpcrt4: Improve PointerUnmarshall to cope with keeping the non-NULL source pointer of a client unmarshall.
...
This will enable various types with embedded pointers to handle [in,out]
parameters correctly by keeping the existing memory.
2007-11-30 11:56:21 +01:00
Rob Shearman
4e8f69ac2d
rpcrt4: Move forcing of fMustAlloc to NULL to the callers of EmbeddedPointerUnmarshall.
...
This will enable them to be individually fixed up to use memory if it
was provided by the caller.
2007-11-30 11:56:11 +01:00
Rob Shearman
43e0c67fe2
rpcrt4: EmbeddedPointerUnmarshall doesn't need to change the address of the allocated memory, so reduce the level of indirection of the memory parameter by one.
2007-11-30 11:56:04 +01:00
Rob Shearman
8668369b4f
rpcrt4: Fix an integer overflow in NdrConformantStructMarshall and NdrConformantStructUnmarshall.
2007-11-29 13:31:05 +01:00
Rob Shearman
074898ba2b
rpcrt4: Fix some more potential buffer overflows.
2007-11-29 13:30:58 +01:00
Rob Shearman
5a3c34eb89
rpcrt4: Check there is enough space in the buffer and that the size doesn't cause an overflow when copying data to it.
2007-11-29 13:30:21 +01:00
Rob Shearman
d0223ecc0e
rpcrt4: Check for integer overflows when increasing the buffer length.
...
Rename safe_buffer_copy to safe_copy_from_buffer.
2007-11-29 13:30:04 +01:00
Rob Shearman
046f24a0e7
rpcrt4: Raise an exception if a NULL ref-pointer is passed in to PointerMarshall or PointerBufferSize.
2007-11-21 12:03:35 +01:00
Rob Shearman
04dc115b54
rpcrt4: Handle FC_IGNORE in the base type functions.
2007-11-05 15:06:06 +01:00
Dan Hipschman
8caa325eb7
rpcrt4: Initialize allocated pointers to NULL in PointerUnmarshall.
...
This patch initializes allocated pointers in PointerUnmarshall since later
code checks the value for NULL (specifically, NdrConformantArrayUnmarshall).
2007-11-05 13:24:36 +01:00
Dan Hipschman
acfde97b9e
rpcrt4, widl: Make pointer layouts compatible with windows; fix conformant array tests.
2007-10-11 16:24:28 +02:00
Rob Shearman
f67a6adf4e
rpcrt4: Implement RpcSmDestroyClientContext and RpcSsDestroyClientContext.
2007-09-19 11:36:41 +02:00
Andrew Talbot
fa3d623882
rpcrt4: Constify some variables.
2007-08-20 11:56:05 +02:00
Dmitry Timoshkov
12d3905427
rpcrt4: Fix the buffer bounds check.
2007-07-19 12:03:50 +02:00
Rob Shearman
2703059933
rpcrt4: Never allocate memory for the discriminant in union_arm_unmarshall as the memory is part of the union and has already been allocated.
2007-07-16 22:46:59 +02:00
Rob Shearman
b44c16cc8d
rpcrt4: Check to make sure there is enough data in the buffer during unmarshalling, so that the code doesn't try to read beyound the end of the buffer.
2007-07-16 22:46:55 +02:00
Rob Shearman
686c0f094c
rpcrt4: Even though FC_ENUM16 is an unsigned type, the highest allowable value that can be marshalled is SHRT_MAX, not USHRT_MAX.
2007-07-16 22:46:47 +02:00
Dan Hipschman
ea7b1694de
rpcrt4: Allow enums as union switch types.
2007-06-26 11:59:43 +02:00
Rob Shearman
545c2a95f6
rpcrt4: Dereference the pointer passed to the marshaling/unmarshaling/sizing routines in complex types for interface pointers.
2007-06-25 23:21:55 +02:00
Rob Shearman
fc124eca6e
rpcrt4: Implement marshalling, unmarshalling and buffer sizing for the context handle type.
2007-06-25 23:21:55 +02:00
Rob Shearman
d36f02eaa9
rpcrt4: Implement marshalling/unmarshalling for the range NDR type.
2007-06-25 23:21:54 +02:00
Rob Shearman
4174255e0c
rpcrt4: Set PointerBufferMark to the buffer location immediately after the non-pointer data in complex struct and array marshaling and unmarshaling to keep to the DCE/RPC specification.
2007-06-25 23:21:54 +02:00
Rob Shearman
0f826e7cc1
rpcrt4: Use the offset to array data in embedded pointer format descriptions.
2007-06-20 13:08:30 +02:00
Dan Hipschman
d2c15ed01b
rpcrt4: Fix typo in union buffer size calculation.
2007-06-19 11:46:02 +02:00
Dan Hipschman
6fd05b1dc7
rpcrt4: Fix bug calculating union switch type.
2007-06-19 11:45:51 +02:00
Dan Hipschman
b09b917a5c
rpcrt4: Remove inaccurate comments.
2007-06-19 11:45:44 +02:00
Rob Shearman
0871ab9130
rpcrt4: Implement encapsulated union NDR functions.
2007-06-18 13:58:09 +02:00
Andrew Talbot
d5d056ef75
rpcrt4: Exclude unused headers.
2007-05-18 14:11:22 +02:00
Andrew Talbot
67813450b9
rpcrt4: Replace inline static with static inline.
2007-03-23 12:29:52 +01:00
Rob Shearman
b6d8b27be5
rpcrt4: The format structures used in the marshaling code should have 1-byte alignment.
2007-02-12 15:20:52 +01:00
Huw Davies
e3abd2b3ff
rpcrt4: Implement NdrSimpleType{Marshall,Unmarshall}.
2007-01-24 11:59:01 +01:00
Francois Gouget
5962cf6e4f
rpcrt4: Add some stub documentation headers to make winapi_check happy.
...
Also fix some headers that identified internal APIs as external.
2006-11-13 13:00:53 +01:00
Michael Stefaniuc
de21efbadd
rpcrt4: Win64 printf format warning fixes.
2006-11-10 11:31:59 +01:00
Michael Stefaniuc
718f3c3505
rpcrt4: More "unsigned long" to "ULONG" changes in preparation of the removal of WINE_NO_LONG_AS_INT.
2006-11-10 11:31:45 +01:00
Michael Stefaniuc
0628fb5098
rpcrt4/ndr_marshall.c: Bring the function definitions in sync with their declaration.
...
Those got out of sync due to the unsigned long to ULONG migration in the headers.
2006-11-10 11:31:26 +01:00
Andrew Talbot
7147f79153
rpcrt4: Cast-qual warnings fix.
2006-09-26 11:40:33 +02:00
Huw Davies
59be6e0600
rpcrt4: Remember to skip over the conformance description.
2006-08-18 11:34:26 +02:00
Phil Lodwick
dd000074fe
rpcrt4: Support for SMVARRAY in EmbeddedComplexSize.
2006-07-25 11:31:59 +02:00
Robert Shearman
5700fe8a61
rpcrt4: Set BufferMark before calling EmbeddedPointerMarshall, EmbeddedPointerUnmarshall or EmbeddedPointerMemorySize.
2006-07-24 13:47:40 +02:00
Robert Shearman
a8531067c4
rpcrt4: Support small fixed arrays in EmbeddedComplexSize.
2006-07-24 13:47:31 +02:00
Robert Shearman
4c4fc14fe9
rpcrt4: Allocate memory based on MaxCount, not ActualCount in NdrConformantStringUnmarshall.
2006-07-24 13:47:25 +02:00
Robert Shearman
98c26a81fe
rpcrt4: Add support for marshaling the FC_HYPER base type in complex types.
...
Change the FIXME messages to print out unrecognised format characters in
hex rather than decimal.
2006-07-24 13:47:13 +02:00
Robert Shearman
9318cb0fbc
rpcrt4: Handle more structure padding values.
2006-07-18 11:12:47 +02:00
Robert Shearman
2cb3b22c26
rpcrt4: Fix Variance Callback Functions.
...
A callback function for computing the variance puts the computed value
into the same field as a conformance, so make sure to copy the value
into pCount before returning from ComputeConformanceOrVariance.
2006-07-14 12:38:53 +02:00
Michael Stefaniuc
00e779370f
janitorial: Put "inline static" at the beginning of a declaration.
2006-07-07 14:30:35 +02:00
Huw Davies
85ed9a5905
rpcrt4: Don't advance the buffer for FC_STRUCTPAD2.
2006-07-05 11:44:19 +02:00
Robert Shearman
35982d72f5
rpcrt4: Initialise pStubMsg->MemorySize to zero before calling
...
ComplexStructMemorySize from NdrComplexArrayUnmarshall.
2006-06-12 13:21:46 +02:00
Robert Shearman
539b48bff4
rpcrt4: Use safe_mutiply in conformant array functions.
2006-06-12 13:21:46 +02:00
Robert Shearman
8dea3c2aa8
rpcrt4: Pass in a maximum variance value to ReadVariance to allow us
...
to validate the conformance values being read from the wire.
2006-06-12 13:21:46 +02:00
Robert Shearman
613ee6d01c
rpcrt4: Check that strings are null-terminated on unmarshaling of conformant-varying structs.
2006-06-12 13:21:46 +02:00
Robert Shearman
a946eb420b
rpcrt4: Use safe_multiply when multiplying anything by pStubMsg->ActualCount or pStubMsg->MaxCount.
2006-06-12 13:21:46 +02:00
Robert Shearman
cec6092aa2
rpcrt4: Raise an exception during unmarshaling if a conformant string isn't null-terminated.
2006-06-12 13:21:46 +02:00
Robert Shearman
6e95bfe85a
rpcrt4: Introduce a new function, safe_multiply, which will raise an
...
exception if a multiply overflows a 4-byte integer.
This will protect the unmarshaling code against attacks specifying a
large variance.
Use this new function in the conformant string functions to harden them
against attack.
2006-06-12 13:20:30 +02:00
Robert Shearman
d98b73a17a
rpcrt4: Clear an object pointer during unmarshaling, otherwise we
...
could end up using the previously allocated memory even if it isn't
the right size, causing heap corruption.
2006-06-09 21:07:57 +02:00
Robert Shearman
578df90d6d
rpcrt4: Initialise pStubMsg->MemorySize to zero before calling ComplexStructMemorySize from NdrComplexArrayUnmarshall.
2006-06-09 21:07:44 +02:00
Robert Shearman
21673d03f9
rpcrt4: Implement more base types for complex types.
2006-06-09 21:07:22 +02:00
Robert Shearman
c9779ca16b
rpcrt4: Implement varying array NDR functions.
2006-06-05 13:25:09 +02:00
Robert Shearman
cd19c99284
rpcrt4: Don't call NdrBaseTypeMemorySize from within NdrBaseTypeUnmarshall.
2006-06-05 13:24:54 +02:00
Robert Shearman
a48433453b
rpcrt4: The lifetime of the binding handle stored in the context
...
handle is independent of the binding handle used in the call that
unmarshaled it, so we should use RpcBindingCopy to make a copy of it
and then call RpcBindingFree later to free it.
2006-06-03 11:42:25 +02:00
Robert Shearman
a4fff73ba3
rpcrt4: Fix an incorrect format string pointer being passed in to
...
ComputeVariance in NdrConformantVaryingStructBufferSize.
2006-06-03 11:42:13 +02:00
Robert Shearman
da44126395
rpcrt4: Align the buffer correctly when marshaling and unmarshaling context handles.
2006-06-03 11:41:51 +02:00
Robert Shearman
ec5b3c3ea6
rpcrt4: Freeing a NULL context handle is allowed.
2006-06-03 11:41:42 +02:00
Robert Shearman
1a346a4a13
rpcrt4: NdrClientContextMarshall/Unmarshall should both increment the buffer pointer.
2006-06-03 11:41:33 +02:00
Robert Shearman
dc6c640cd2
rpcrt4: Fix the unmarshaling of pointers in conformant varying arrays,
...
by passing the correct type format string to ReadConformance.
2006-06-03 11:41:22 +02:00
Robert Shearman
972ce2f635
rpcrt4: CContext can be NULL in NDRCContextMarshall, in which case we should marshall all-zeros.
2006-06-03 11:41:07 +02:00
Robert Shearman
678ad6286c
rpcrt4: Fix the pointer count used when handling embedded pointers in varying arrays.
2006-06-03 11:40:45 +02:00
Mike McCormack
7f98594f75
rpcrt4: Implement NDRCContext(Un)marshall and NDRCContextBinding.
2006-06-01 11:48:33 +02:00
Huw Davies
bb835ae438
rpcrt4: Add ENUM32 support to ComplexStructMemorySize.
2006-05-31 15:48:11 +02:00
Robert Shearman
115525f3c4
rpcrt4: Make UserMarshalFlags static.
2006-05-30 12:25:22 +02:00
Robert Shearman
df57b025c6
rpcrt4: We should never pass an fMustAlloc value of TRUE into the
...
unmarshaler routines of embedded complexes in complex struct and array
unmarshaling.
Fixes a regression caused by commit
19fad8e710
, reported by Ulrich
Dobramysl.
2006-05-30 12:25:17 +02:00
Robert Shearman
cafd2ab37e
rpcrt4: Make sure to set a unique pointer with an id of 0 to NULL when unmarshaling.
2006-05-30 12:25:03 +02:00
Robert Shearman
ff9fd9c430
rpcrt4: Handle marshaling/unmarshaling full pointers.
2006-05-30 12:24:41 +02:00
Mike McCormack
a534fdec32
rpcrt4: Implement NdrClientContext(Un)Marshall.
2006-05-26 20:21:00 +02:00
Robert Shearman
013d00f094
rpcrt4: Even though FC_DEREFERENCE conformance is handled elsewhere in
...
ComputeConformanceOrVariance it is still necessary to set the count
variable to the value retrieved.
2006-05-26 20:15:49 +02:00
Mike McCormack
42bf8254c0
rpcrt4: Stub implementations for NDRS marshalling functions.
2006-05-25 10:45:01 +02:00
Robert Shearman
ec2a9cef3a
rpcrt4: Set the Memory field of the stub message structure to the
...
start of the memory that an embedded pointer is embedded in so that
FC_POINTER conformance works correctly.
2006-05-25 10:40:35 +02:00
Mike McCormack
4def9cc022
rpcrt4: Add stub implementations for NDRCContext(Un)Marshall.
2006-05-24 14:38:14 +02:00
Huw Davies
69d18c48b1
rpcrt4: Add another static.
2006-05-23 17:51:44 +02:00
Huw Davies
9ba57efc18
rpcrt4: Fix some comments and move the NdrSimpleType* functions out from amongst the NdrSimpleStruct* ones.
2006-05-23 17:51:19 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Robert Shearman
9c885c9185
rpcrt4: We don't need to free object pointers if we are told we must allocate.
2006-05-20 17:37:25 +02:00
Robert Shearman
a2767e8d71
rpcrt4: Use macros to generate the code for unmarshaling base types.
2006-05-20 17:37:13 +02:00
Robert Shearman
19fad8e710
rpcrt4: Don't set the memory pointer to NULL before calling PointerUnmarshall.
...
Call it with fMustAlloc set to TRUE instead to achieve the same result
without side-effects.
2006-05-20 17:36:42 +02:00
Robert Shearman
87ecf526b3
rpcrt4: Make more internal functions static.
2006-05-20 17:36:15 +02:00
Huw Davies
f151ecb0d1
rpcrt4: Use IsClient to determine whether we can use the Buffer memory or not.
...
Add simple struct tests.
2006-05-20 14:03:56 +02:00
Robert Shearman
a2d2d4db63
rpcrt4: Update the todo lists and copyrights.
2006-05-20 14:02:24 +02:00
Robert Shearman
855535af62
rpcrt4: Handle interface pointers in EmbeddedComplexSize.
2006-05-18 10:35:16 +02:00
Robert Shearman
c1d00c547b
rpcrt4: Implement NdrNonEncapsulatedUnionMemorySize.
2006-05-18 10:34:21 +02:00
Robert Shearman
62bbaf70b3
rpcrt4: Fix the wire protocol of the user marshal functions to match MS/RPC.
2006-05-18 10:34:09 +02:00
Robert Shearman
4fae04b2f5
rpcrt4: Fix NdrConformantArrayMemorySize.
2006-05-18 10:33:39 +02:00
Robert Shearman
c4fbad1d11
rpcrt4: Implement NdrUserMarshalMemorySize.
2006-05-18 10:33:00 +02:00
Huw Davies
effac656bb
rpcrt4: Don't update StubMsg->MemorySize while unmarshaling.
...
Add a bunch of marshaling tests (based on a program by Rob Shearman).
2006-05-17 21:46:43 +02:00
Robert Shearman
45ee17899a
rpcrt4: Make some functions that aren't used outside of the file static.
2006-05-17 21:01:02 +02:00
Robert Shearman
b52ae402ad
rpcrt4: Fill out more of the function tables with functions that already exist.
2006-05-17 21:00:42 +02:00
Robert Shearman
ecd3780cc0
rpcrt4: Raise an exception if there is no default handler for a union.
2006-05-17 21:00:35 +02:00
Robert Shearman
0f7e4a877a
rpcrt4: Implement fixed array functions.
2006-05-16 12:51:30 +02:00
Robert Shearman
c27db4cde6
rpcrt4: Remove the BUFFER_PARANOIA overestimates for string memory sizes.
2006-05-16 12:51:19 +02:00
Robert Shearman
4c0b0e0069
rpcrt4: Implement computing of conformance from a correlation descriptor for conformant strings.
2006-05-16 12:51:09 +02:00
Robert Shearman
124acc9b67
rpcrt4: Fix conformant varying structs to comply to the DCE/RPC spec.
2006-05-16 12:50:54 +02:00
Robert Shearman
e6120f2029
rpcrt4: Don't duplicate the conformance calculating code, just use the
...
common ComputeConformance function to store the result in
pStubMsg->MaxCount (as this is what callback function store the
conformance value into anyway).
2006-05-16 12:50:42 +02:00
Robert Shearman
ecdd09b1b2
rpcrt4: Implement conformant varying struct functions.
2006-05-16 12:50:27 +02:00
Robert Shearman
63aaf8dbd7
rpcrt4: Implement more conformance operations and more types.
2006-05-16 12:50:19 +02:00
Robert Shearman
b96d630022
rpcrt4: Implement NdrSimpleStructMemorySize.
2006-05-15 16:08:45 +02:00
Robert Shearman
2aff761dfd
rpcrt4: Fix the conformant struct functions to not call conformant array functions.
...
The conformance has to be the first thing in the buffer, in accordance
with the DCE/RPC spec and to be compatible with the pointer layout
format strings that MIDL generates.
2006-05-15 16:08:36 +02:00
Robert Shearman
4af0a6b805
rpcrt4: In NdrConformantBufferSize, SizeConformance should be called, not SizeVariance.
2006-05-15 16:08:28 +02:00
Robert Shearman
2479aec4af
rpcrt4: Save pStubMsg->ActualCount in a local variable in the complex
...
array functions, before calling a function that could change it and
cause the wrong number of loop iterations.
2006-05-15 16:08:19 +02:00
Robert Shearman
345c92643e
rpcrt4: Dereference the memory for pointers in NdrNonEncapsulatedUnionUnmarshall.
...
Pointers in a non-encapsulated union behave like embedded pointers, so
don't rely on the NdrPointer* functions doing the right thing in this
case and call the Pointer* functions directly.
2006-05-15 16:08:04 +02:00
Robert Shearman
f0aea2d5ee
rpcrt4: Rename ComplexStructSize to ComplexStructMemorySize to reflect the fact that it increments the buffer.
...
Replace the code in EmbeddedComplexSize that sizes non-encapsulated
unions without using a memory sizer routine, since this function
shouldn't touch the buffer.
Add a new function EmbeddedComplexMemorySize and use it in some memory
sizer routines where EmbeddedComplexSize was previously used.
2006-05-15 16:07:54 +02:00
Robert Shearman
788ce20dea
rpcrt4: Fix embedded pointers in arrays by taking into account the iteration when calculating the appropriate memory and buffer pointers.
2006-05-15 16:07:42 +02:00
Robert Shearman
07d032b24b
rpcrt4: The arm type mask should be comparing the highest byte against 0x80, as documented on MSDN.
...
Fix base type arm handling on little-endian machines, as the current
code would always pass in the address to the format char of 0x80
instead of the base type format char.
2006-05-15 14:07:59 +02:00
Robert Shearman
5cdfeeeed3
rpcrt4: Make ComplexStructSize increment the buffer.
2006-05-15 14:07:36 +02:00
Robert Shearman
3e988bfc4f
rpcrt4: Pass in the buffer value before incrementing to PointerMarshall in NdrPointerMarshall.
2006-05-15 14:07:25 +02:00
Robert Shearman
22bf15049c
rpcrt4: Implement NdrComplexStructMemorySize.
2006-05-15 14:07:13 +02:00
Robert Shearman
cedbddbfde
rpcrt4: Implement NdrComplexArrayMemorySize.
2006-05-15 14:06:55 +02:00
Robert Shearman
628c5e9baf
rpcrt4: The NDR memory sizing functions should increment the buffer pointer, so make sure to save it before calling one of these and restore it afterwards.
2006-05-15 14:06:41 +02:00
Robert Shearman
dcd0a39d4c
rpcrt4: Make NdrBaseTypeMemorySize increment the buffer and memory size fields of MIDL_STUB_MESSAGE.
2006-05-15 14:06:31 +02:00
Robert Shearman
4d65110b90
rpcrt4: Make NdrConformantStringUnmarshall use the new Read{Variance,Conformance}
...
functions and adapt them to be callable without having a correlation
descriptor.
2006-05-15 14:06:05 +02:00
Robert Shearman
ababfdef82
rpcrt4: Use the buffer passed in as an argument and don't increment
...
the buffer in the MIDL_STUB_MESSAGE in the inner pointer
marshalling/unmarshalling routines as these can be used for embedded
pointers, which handle the allocating or finding of the buffer
themselves. Do the incrementing in the outer
NdrPointerMarshall/Unmarshall/BufferSize routines instead.
2006-05-10 19:26:10 +02:00
Robert Shearman
c3a087eb45
rpcrt4: Align conformances and variances correctly, according the the DCE/RPC spec.
2006-05-10 19:25:45 +02:00
Robert Shearman
265045d251
rpcrt4: Move the writing and sizing of variances and conformances to common functions.
2006-05-10 19:25:37 +02:00
Robert Shearman
4b4192f3a5
rpcrt4: Correctly align the buffer to read/write array data to.
2006-05-10 19:25:26 +02:00
Robert Shearman
95d79e2c58
rpcrt4: Correctly align the buffer before reading/writing structure data.
2006-05-10 19:25:16 +02:00
Robert Shearman
5616c4150c
rpcrt4: Rename NonEncapsulatedUnionSize to NdrNonEncapsulatedUnionMemorySize.
2006-05-10 19:25:06 +02:00
Robert Shearman
75fe824e89
rpcrt4: Remove unintuitive requirement to pass the required alignment boundary minus one into the alignment macros.
2006-05-10 19:24:50 +02:00
Robert Shearman
772eb9bdf9
rpcrt4: Implement NdrConformantVaryingArrayFree.
2006-05-07 10:03:01 +02:00
Robert Shearman
b43e799486
rpcrt4: Dereference the pointer if necessary only after doing the
...
pointer checks and writing the pointer ID to the wire.
2006-05-07 10:02:05 +02:00
Robert Shearman
9519004b1a
rpcrt4: Improve the traces in the pointer functions.
2006-05-07 10:01:37 +02:00
Huw Davies
b1d5158980
rpcrt4: Support for non-encapsulated unions.
2006-05-05 16:55:49 +02:00
Robert Shearman
0ced865aa1
rpcrt4: Don't apply the offset to the pointer passed to callback conformance functions.
2006-04-20 15:12:20 +02:00
Robert Shearman
8d36337644
rpcrt4: Free all pointers by default, except for conformant strings.
...
Free all pointers by default, except for conformant strings.
Conformant arrays should always be freed.
Add FC_CVARRAY to list of known types to avoid a FIXME.
2006-04-20 15:12:07 +02:00
Dmitry Timoshkov
590f6faee1
rpcrt4: Constify NDR function tables.
2006-04-14 19:36:09 +02:00
Robert Shearman
e8877ede80
rpcrt4: Implement marshaling and unmarshaling for enum types.
2006-03-01 19:53:35 +01:00
Robert Shearman
5b629e9509
rpc: Skip over the right number of bytes in new correlation descriptors.
...
Skip over 6 bytes of the format descriptor if new correlation
descriptors are being used, instead of 4.
2006-01-20 16:15:11 +01:00
Robert Shearman
68b9225022
rpcrt4: Clear the newly allocated memory used for complex arrays and structs.
2006-01-18 11:29:50 +01:00
Robert Shearman
1926b6da63
rpcrt4: Improve ReadVariance.
...
Extend ReadVariance to read the offset as well as the actual count,
since these always come in pairs.
Handle the variance not being present in ReadVariance and always call
it from the unmarshalling functions to simplify the code there and
also to fix a bug where the format pointer wasn't advanced properly
for complex arrays (introduced in the previous patch when implementing
variance).
2006-01-09 17:21:01 +01:00
Robert Shearman
2e875d5d35
rpcrt4: Validate complex array format string.
...
Verify that the format string being passed into the complex array
functions is a complex array one.
2006-01-09 17:20:19 +01:00
Robert Shearman
c96e102fff
rpcrt4: Compute variance for complex arrays
2006-01-06 21:07:27 +01:00
Robert Shearman
03060551d6
rpcrt4: Implement callback conformance.
2006-01-03 12:07:17 +01:00