Rob Shearman
eeeed91d92
rpcrt4: Implement non-conformant string functions.
2007-12-31 16:46:10 +01:00
Rob Shearman
3e8a032e8b
rpcrt4: Re-use existing memory for embedded pointers in NdrVaryingArrayUnmarshall.
2007-12-26 14:02:58 +01:00
Rob Shearman
273766ee6f
rpcrt4: Re-use existing memory for embedded pointers in NdrConformantVaryingArrayUnmarshall.
2007-12-26 14:02:55 +01:00
Rob Shearman
a05923e1d3
rpcrt4: Add tests for varying and conformant varying arrays.
2007-12-26 14:02:53 +01:00
Rob Shearman
e24f664b26
rpcrt4: Add tests for low-level context handle functions.
2007-12-26 13:26:52 +01:00
Rob Shearman
3d8af5630b
rpcrt4: Implement low-level context handle support.
...
Server context handles are tracked from associations as their lifetime
is determined by the lifetime of the association.
2007-12-26 13:26:49 +01:00
Rob Shearman
698ba6b4d4
rpcrt4: Implement higher-level NDR server context handle functions.
...
Implement NdrServerContextMarshall and NdrServerContextNewMarshall on
top of NDRSContextMarshall2. Implement NdrContextHandleInitialize,
NdrServerContextUnmarshall and NdrServerContextNewUnmarshall on top of
NDSContextUnmarshall2.
2007-12-26 13:26:38 +01:00
Rob Shearman
cf6d95c1b8
rpcrt4: Move low-level NDR context handle functions to a separate file.
2007-12-26 13:26:30 +01:00
Rob Shearman
64d1e2d8e3
rpcrt4: Set pStubMsg->BufferMark in NdrConformantVaryingArrayUnmarshall and NdrVaryingArrayUnmarshall.
...
pStubMsg->BufferMark should always be set before
EmbeddedPointerUnmarshall is called and these functions didn't
previously do so.
2007-12-23 13:55:27 +01:00
Rob Shearman
366fd6e3af
rpcrt4: Fix a memory leak from the get_filename call in the server tests.
2007-12-21 12:41:21 +01:00
Rob Shearman
17eb6f44ad
rpcrt4: Print an error if stub buffer pointer is passed into safe_copy_from_buffer.
...
Also print an error message if there was an overflow.
2007-12-21 12:41:18 +01:00
Rob Shearman
9a888e6465
rpcrt4: Fix NdrConformantStringUnmarshall to always increment the buffer during unmarshalling.
...
safe_copy_from_buffer has the side-effect of incrementing the buffer and
this still needs to be done when we point the memory into the buffer.
(Thanks to Maarten Lankhorst for finding the mistake and suggesting a fix.)
2007-12-20 12:10:30 +01:00
Rob Shearman
6382c8af3f
rpcrt4: Don't use BufferEnd in RpcStream_Write.
...
It is usually used during marshalling, where pStubMsg->BufferStart and
pStubMsg->BufferEnd won't be valid. Replace it with a check using
RpcMsg->Buffer and pStubMsg->BufferLength.
2007-12-19 19:35:42 +01:00
Rob Shearman
c49a73b853
rpcrt4: Initialise memory passed into RPCs in the server test.
...
aligns contains padding, but the memory is marshalled in one block so
call memset to avoid Valgrind warnings. padded and padded2 are
marshalled as complex types so this is not required here.
Initialise the dummy member of test_list_t to zero for the TL_NULL case.
Change the type to the smallest available to not waste buffer space.
2007-12-19 19:35:28 +01:00
Rob Shearman
22b20879f7
rpcrt4: Memory should only be cleared in ComplexUnmarshall, not in ComplexMarshall.
...
Also clear memory when FC_STRUCTPAD* is encountered.
2007-12-19 19:35:02 +01:00
Rob Shearman
50cab7736a
rpcrt4: Fix the ALIGN_POINTER_CLEAR macro.
2007-12-19 19:34:56 +01:00
Rob Shearman
1cb7df8a98
rpcrt4: Implement I_RpcGetCurrentCallHandle.
2007-12-18 19:48:19 +01:00
Michael Stefaniuc
6210c097a4
rpcrt4: Add missing LeaveCriticalSection. Found by Smatch.
2007-12-18 12:32:55 +01:00
Rob Shearman
bdc5a34196
rpcrt4: Add a stub for I_RpcGetCurrentCallHandle.
2007-12-18 12:32:55 +01:00
Rob Shearman
b9c92e9564
rpcrt4: Don't copy memory from the buffer in NdrConformantStringUnmarshall if we just pointed the memory pointer into the buffer.
...
(Reported by Dan Kegel.)
2007-12-18 12:32:55 +01:00
Francois Gouget
76d266cbb0
rpcrt4: Add an rpcasync.h header stub and fix the RpcErrorStartEnumeration() prototype.
2007-12-18 12:32:42 +01:00
Rob Shearman
737510eeb6
rpcrt4: Move association code into a separate file.
2007-12-17 11:59:18 +01:00
Rob Shearman
22f530c835
rpcrt4: Make a server association when a bind packet is received in the server.
...
Support handing out association group IDs.
2007-12-17 11:59:13 +01:00
Rob Shearman
2bda19c6b0
rpcrt4: Return an error from rpcrt4_conn_tcp_read if recv returns 0.
2007-12-17 11:58:57 +01:00
Rob Shearman
259879d1f5
rpcrt4: Fix NdrConformantStringUnmarshall to use buffer memory if possible.
2007-12-17 11:58:06 +01:00
Rob Shearman
b300189c43
rpcrt4: Add a FIXME for RPC_FC_P_ALLOCALLNODES in PointerUnmarshall.
2007-12-17 11:58:00 +01:00
Rob Shearman
68432dd339
rpcrt4: Clear padding inserted into the buffer during marshalling because of alignment.
2007-12-17 11:57:54 +01:00
Rob Shearman
c8a802eea8
include: Make RpcRaiseException DECLSPEC_NORETURN, like it is in the PSDK.
2007-12-14 12:28:03 +01:00
Rob Shearman
ba280fb1b0
rpcrt4: Fix a typo in rpcrt4_conn_tcp_read.
2007-12-14 12:27:09 +01:00
Rob Shearman
25bf0a409a
rpcrt4: Update TODO list.
...
Out-of-memory check is performed by NdrAllocate and so isn't required to
be done in the unmarshalling functions.
2007-12-14 12:24:34 +01:00
Rob Shearman
4a028589eb
rpcrt4: Document NdrAllocate.
2007-12-14 12:24:24 +01:00
Rob Shearman
c7261b732b
rpcrt4: Partially revert commit 18faf3184b2ea263d77c2a7ad92eef27bc4ba08f.
...
Tests show that NdrPointerFree (and hence NdrFree) don't check whether
the memory was allocated with NdrAllocate before freeing it. This makes
sense as servers don't need to use NdrAllocate to allocate memory being
returned and so this commit caused that memory to be leaked.
NdrAllocate hasn't been changed as the tests show it is correct and it
appears that the memory list is used to implement the RpcSs memory model.
2007-12-14 12:24:21 +01:00
Rob Shearman
ce220e2b5f
rpcrt4: Free the base pointer in PointerFree when freeing a pointer with RPC_FC_P_DEREF.
2007-12-14 12:24:03 +01:00
Rob Shearman
d5ff3467bc
rpcrt4: Fix the check in NdrPointerFree.
...
Add comments to justify why this is the only check that is needed.
2007-12-14 12:23:55 +01:00
Rob Shearman
9d8ebc1a24
rpcrt4: NdrStubGetBuffer shouldn't set BufferStart and BufferEnd.
...
These are supposed to point to the original buffer when the types were
unmarshalled.
2007-12-14 12:23:46 +01:00
Rob Shearman
ded4b86625
Revert "rpcrt4: Try to free every non-stack pointer in PointerFree now that NdrFree does the sanity checking for us.".
...
This reverts commit 6db648302ce43f625a073426a35a6f40b7869d8b.
Tests show the assumptions in a commit that this commit depends on are
not valid.
2007-12-14 12:23:38 +01:00
Rob Shearman
9642714d06
rpcrt4: Add tests for freeing non-NdrAllocate allocated memory blocks.
2007-12-13 14:30:40 +01:00
Rob Shearman
e12b487e26
rpcrt4: Try to free every non-stack pointer in PointerFree now that NdrFree does the sanity checking for us.
2007-12-12 16:02:53 +01:00
Rob Shearman
9c8c74f388
rpcrt4: Store allocated memory in a singly-linked list to keep track of what we should and shouldn't free in NdrFree.
2007-12-12 16:02:43 +01:00
Rob Shearman
33c4c25dad
rpcrt4: Make the NdrAllocate tests pass on XP SP2 and greater.
2007-12-12 16:01:33 +01:00
Rob Shearman
d458a599eb
widl: Add support for non-basetype return types.
2007-12-11 18:07:05 +01:00
Rob Shearman
766d8a17af
rpcrt4: Pass the USER_MARSHAL_CB structure into user marshal routines.
2007-12-10 12:04:28 +01:00
Rob Shearman
80b8743aa2
rpcrt4: NdrRangeUnmarshall is implemented so add it to the spec file.
2007-12-10 12:04:19 +01:00
Rob Shearman
a07afe7e06
rpcrt4: Implement NdrConformantArrayMemorySize.
2007-12-10 12:04:15 +01:00
Rob Shearman
41937c5756
rpcrt4: Add a missing break in DllMain.
2007-12-08 19:58:24 +01:00
Rob Shearman
417b9d80f2
rpcrt4: Save the buffer in EmbeddedPointerMemorySize, like EmbeddedPointerUnmarshall does.
2007-12-08 19:58:11 +01:00
Rob Shearman
d7a0de303e
rpcrt4: Fix the return value from NdrSimpleStructMemorySize.
2007-12-08 19:58:07 +01:00
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