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

This commit is contained in:
Dmitry Timoshkov 2006-04-27 20:53:19 +09:00 committed by Alexandre Julliard
parent d89a038287
commit 8414777cba
1 changed files with 20 additions and 4 deletions

View File

@ -436,10 +436,6 @@ static SECURITY_STATUS SEC_ENTRY ntlm_InitializeSecurityContextW(
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_InitializeSecurityContextW(
/* 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_InitializeSecurityContextW(
/* 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");