Rob Shearman : secur32: Don' t allocate context handle in wrapper InitializeSecurityContextA/ W if it is the same as the handle passed into the function.

Alexandre Julliard julliard at winehq.org
Wed Dec 30 10:18:15 CST 2009


Module: wine
Branch: master
Commit: 697955c922765214d61965ecc594e256853f6d12
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=697955c922765214d61965ecc594e256853f6d12

Author: Rob Shearman <robertshearman at gmail.com>
Date:   Tue Dec 29 19:06:43 2009 +0000

secur32: Don't allocate context handle in wrapper InitializeSecurityContextA/W if it is the same as the handle passed into the function.

---

 dlls/secur32/wrapper.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/secur32/wrapper.c b/dlls/secur32/wrapper.c
index 2ab241d..3d678a5 100644
--- a/dlls/secur32/wrapper.c
+++ b/dlls/secur32/wrapper.c
@@ -283,7 +283,8 @@ SECURITY_STATUS WINAPI InitializeSecurityContextA(
                  cred, ctxt, pszTargetName, fContextReq,
                  Reserved1, TargetDataRep, pInput, Reserved2, phNewContext ? &myCtxt : NULL,
                  pOutput, pfContextAttr, ptsExpiry);
-            if ((ret == SEC_E_OK || ret == SEC_I_CONTINUE_NEEDED) && phNewContext)
+            if ((ret == SEC_E_OK || ret == SEC_I_CONTINUE_NEEDED) &&
+                phNewContext && phNewContext != phContext)
             {
                 SECURITY_STATUS ret2;
                 ret2 = SECUR32_makeSecHandle(phNewContext, package, &myCtxt);
@@ -346,7 +347,8 @@ SECURITY_STATUS WINAPI InitializeSecurityContextW(
                  cred, ctxt, pszTargetName, fContextReq,
                  Reserved1, TargetDataRep, pInput, Reserved2, phNewContext ? &myCtxt : NULL,
                  pOutput, pfContextAttr, ptsExpiry);
-            if ((ret == SEC_E_OK || ret == SEC_I_CONTINUE_NEEDED) && phNewContext)
+            if ((ret == SEC_E_OK || ret == SEC_I_CONTINUE_NEEDED) &&
+                phNewContext && phNewContext != phContext)
             {
                 SECURITY_STATUS ret2;
                 ret2 = SECUR32_makeSecHandle(phNewContext, package, &myCtxt);




More information about the wine-cvs mailing list