Jacek Caban : rpcrt4: Fix context handle return value unmarshaling.

Alexandre Julliard julliard at winehq.org
Fri Jan 25 16:29:08 CST 2019


Module: wine
Branch: master
Commit: 464ba54b4cc99e1c1903a189f31845352a9faeba
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=464ba54b4cc99e1c1903a189f31845352a9faeba

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jan 25 12:01:23 2019 +0100

rpcrt4: Fix context handle return value unmarshaling.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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
     {




More information about the wine-cvs mailing list