libfreerdp-crypto: temporarily disable free() operations causing crash in Windows FreeRDP server

This commit is contained in:
Marc-André Moreau 2012-08-23 16:09:46 -04:00
parent 69a2f6e51c
commit d211adceae

View File

@ -383,7 +383,6 @@ int credssp_server_authenticate(rdpCredssp* credssp)
CredHandle credentials;
TimeStamp expiration;
PSecPkgInfo pPackageInfo;
PSecBuffer p_buffer;
SecBuffer input_buffer;
SecBuffer output_buffer;
SecBufferDesc input_buffer_desc;
@ -463,6 +462,8 @@ int credssp_server_authenticate(rdpCredssp* credssp)
have_pub_key_auth = false;
ZeroMemory(&input_buffer, sizeof(SecBuffer));
ZeroMemory(&output_buffer, sizeof(SecBuffer));
ZeroMemory(&input_buffer_desc, sizeof(SecBufferDesc));
ZeroMemory(&output_buffer_desc, sizeof(SecBufferDesc));
ZeroMemory(&credssp->ContextSizes, sizeof(SecPkgContext_Sizes));
/*
@ -506,9 +507,8 @@ int credssp_server_authenticate(rdpCredssp* credssp)
credssp_buffer_print(credssp);
#endif
p_buffer = &input_buffer_desc.pBuffers[0];
p_buffer->pvBuffer = credssp->negoToken.pvBuffer;
p_buffer->cbBuffer = credssp->negoToken.cbBuffer;
input_buffer.pvBuffer = credssp->negoToken.pvBuffer;
input_buffer.cbBuffer = credssp->negoToken.cbBuffer;
if (credssp->negoToken.cbBuffer < 1)
{
@ -528,15 +528,8 @@ int credssp_server_authenticate(rdpCredssp* credssp)
&input_buffer_desc, fContextReq, SECURITY_NATIVE_DREP, &credssp->context,
&output_buffer_desc, &pfContextAttr, &expiration);
if (input_buffer.pvBuffer != NULL)
{
free(input_buffer.pvBuffer);
input_buffer.pvBuffer = NULL;
}
p_buffer = &output_buffer_desc.pBuffers[0];
credssp->negoToken.pvBuffer = p_buffer->pvBuffer;
credssp->negoToken.cbBuffer = p_buffer->cbBuffer;
credssp->negoToken.pvBuffer = output_buffer.pvBuffer;
credssp->negoToken.cbBuffer = output_buffer.cbBuffer;
if ((status == SEC_I_COMPLETE_AND_CONTINUE) || (status == SEC_I_COMPLETE_NEEDED))
{
@ -565,7 +558,7 @@ int credssp_server_authenticate(rdpCredssp* credssp)
return -1;
}
sspi_SecBufferFree(&credssp->negoToken);
//sspi_SecBufferFree(&credssp->negoToken);
credssp->negoToken.pvBuffer = NULL;
credssp->negoToken.cbBuffer = 0;
@ -586,7 +579,7 @@ int credssp_server_authenticate(rdpCredssp* credssp)
#endif
credssp_send(credssp);
credssp_buffer_free(credssp);
//credssp_buffer_free(credssp);
if (status != SEC_I_CONTINUE_NEEDED)
break;
@ -1316,6 +1309,6 @@ void credssp_free(rdpCredssp* credssp)
free(credssp->identity.User);
free(credssp->identity.Domain);
free(credssp->identity.Password);
free(credssp);
//free(credssp);
}
}