Module: wine Branch: master Commit: 464ba54b4cc99e1c1903a189f31845352a9faeba URL: https://source.winehq.org/git/wine.git/?a=commit;h=464ba54b4cc99e1c1903a189f...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Jan 25 12:01:23 2019 +0100
rpcrt4: Fix context handle return value unmarshaling.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/rpcrt4/ndr_marshall.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/rpcrt4/ndr_marshall.c b/dlls/rpcrt4/ndr_marshall.c index 77bbf98..d71d2fa 100644 --- a/dlls/rpcrt4/ndr_marshall.c +++ b/dlls/rpcrt4/ndr_marshall.c @@ -7031,10 +7031,15 @@ static unsigned char *WINAPI NdrContextHandleUnmarshall(
if (pStubMsg->IsClient) { + NDR_CCONTEXT *ccontext; + if (pFormat[1] & HANDLE_PARAM_IS_VIA_PTR) + ccontext = *(NDR_CCONTEXT **)ppMemory; + else + ccontext = (NDR_CCONTEXT *)ppMemory; /* [out]-only or [ret] param */ if ((pFormat[1] & (HANDLE_PARAM_IS_IN|HANDLE_PARAM_IS_OUT)) == HANDLE_PARAM_IS_OUT) - **(NDR_CCONTEXT **)ppMemory = NULL; - NdrClientContextUnmarshall(pStubMsg, *(NDR_CCONTEXT **)ppMemory, pStubMsg->RpcMsg->Handle); + *ccontext = NULL; + NdrClientContextUnmarshall(pStubMsg, ccontext, pStubMsg->RpcMsg->Handle); } else {