kerberos: Calling InitializeSecurityContext without a token buffer is not an error.
This patch makes Kerberos Authentication Tester work with https and dotnet40. Apparently that's a dotnet40 quirk that it passes not NULL input buffers but doesn't mark any of buffers as a token, dotnet20 passes NULL input. Note, that in order to make version 2.0 applications work (Kerberos Authentication Tester is such an application) with dotnet40+ one needs to add to the registry key [Software\\Microsoft\\.NETFramework] "OnlyUseLatestCLR"=dword:00000001 Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru> Signed-off-by: Hans Leidekker <hans@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
c03b41c896
commit
b8f0649851
|
@ -913,10 +913,14 @@ static NTSTATUS NTAPI kerberos_SpInitLsaModeContext( LSA_SEC_HANDLE credential,
|
||||||
if (!input) input_token.length = 0;
|
if (!input) input_token.length = 0;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((idx = get_buffer_index( input, SECBUFFER_TOKEN )) == -1) return SEC_E_INVALID_TOKEN;
|
if ((idx = get_buffer_index( input, SECBUFFER_TOKEN )) == -1)
|
||||||
|
input_token.length = 0;
|
||||||
|
else
|
||||||
|
{
|
||||||
input_token.length = input->pBuffers[idx].cbBuffer;
|
input_token.length = input->pBuffers[idx].cbBuffer;
|
||||||
input_token.value = input->pBuffers[idx].pvBuffer;
|
input_token.value = input->pBuffers[idx].pvBuffer;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((idx = get_buffer_index( output, SECBUFFER_TOKEN )) == -1) return SEC_E_INVALID_TOKEN;
|
if ((idx = get_buffer_index( output, SECBUFFER_TOKEN )) == -1) return SEC_E_INVALID_TOKEN;
|
||||||
output_token.length = 0;
|
output_token.length = 0;
|
||||||
|
|
Loading…
Reference in New Issue