Dmitry Timoshkov : secur32: Add partial support for ISC_REQ_ALLOCATE_MEMORY in the NTLM security provider .

Alexandre Julliard julliard at wine.codeweavers.com
Fri May 5 14:07:54 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 8414777cba83c9f2f4290a134224199b9b12da67
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=8414777cba83c9f2f4290a134224199b9b12da67

Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date:   Thu Apr 27 20:53:19 2006 +0900

secur32: Add partial support for ISC_REQ_ALLOCATE_MEMORY in the NTLM security provider.

---

 dlls/secur32/ntlm.c |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/dlls/secur32/ntlm.c b/dlls/secur32/ntlm.c
index 5b5c2ee..6cd34c9 100644
--- a/dlls/secur32/ntlm.c
+++ b/dlls/secur32/ntlm.c
@@ -436,10 +436,6 @@ static SECURITY_STATUS SEC_ENTRY ntlm_In
                 TRACE("According to a MS whitepaper pszTargetName is ignored.\n");
             }
             /* Handle all the flags */
-            if(fContextReq & ISC_REQ_ALLOCATE_MEMORY)
-            {
-                FIXME("InitializeSecurityContext(): ISC_REQ_ALLOCATE_MEMORY stub\n");
-            }
             if(fContextReq & ISC_REQ_CONFIDENTIALITY)
             {
                 FIXME("InitializeSecurityContext(): ISC_REQ_CONFIDENTIALITY stub\n");
@@ -547,6 +543,16 @@ static SECURITY_STATUS SEC_ENTRY ntlm_In
 
                 /* put the decoded client blob into the out buffer */
 
+                if (fContextReq & ISC_REQ_ALLOCATE_MEMORY)
+                {
+                    if (pOutput)
+                    {
+                        pOutput->cBuffers = 1;
+                        pOutput->pBuffers[0].pvBuffer = SECUR32_ALLOC(bin_len);
+                        pOutput->pBuffers[0].cbBuffer = bin_len;
+                    }
+                }
+
                 if (!pOutput || !pOutput->cBuffers || pOutput->pBuffers[0].cbBuffer < bin_len)
                 {
                     TRACE("out buffer is NULL or has not enough space\n");
@@ -643,6 +649,16 @@ static SECURITY_STATUS SEC_ENTRY ntlm_In
 
                 /* put the decoded client blob into the out buffer */
 
+                if (fContextReq & ISC_REQ_ALLOCATE_MEMORY)
+                {
+                    if (pOutput)
+                    {
+                        pOutput->cBuffers = 1;
+                        pOutput->pBuffers[0].pvBuffer = SECUR32_ALLOC(bin_len);
+                        pOutput->pBuffers[0].cbBuffer = bin_len;
+                    }
+                }
+
                 if (!pOutput || !pOutput->cBuffers || pOutput->pBuffers[0].cbBuffer < bin_len)
                 {
                     TRACE("out buffer is NULL or has not enough space\n");




More information about the wine-cvs mailing list