ole32: Marshal the ORPCTHIS structure prefixed to the client data when doing ORPC...
commit1dc5dec6e6c3ba9a3dd7b2379244c872162a1e35
authorRob Shearman <rob@codeweavers.com>
Tue, 19 Dec 2006 19:35:35 +0000 (19 19:35 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 20 Dec 2006 11:36:43 +0000 (20 12:36 +0100)
tree25f83081ee70838e09518cd32fd8b8aaaf550bb3
parente4fc45e0fe2bae4e6653b54267e0419d51c66d72
ole32: Marshal the ORPCTHIS structure prefixed to the client data when doing ORPC calls.

This is done by putting the ORPCTHIS data into the buffer when calling
IRpcChannelBuffer::GetBuffer on the client side and then storing the
amount we increased the buffer in a structure stored in the Handle
field. This is done to present the correct Buffer pointer to the proxy
so that it writes its data after the ORPCTHIS data.

Unmarshal the data on the server side (during RPC_ExecuteCall) and make
sure the data is consistent according to NDR rules. Also add several
checks on the unmarshaled data that are specified by the DCOM draft
specification.
dlls/ole32/rpc.c