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,9 +913,13 @@ static NTSTATUS NTAPI kerberos_SpInitLsaModeContext( LSA_SEC_HANDLE credential,
|
|||
if (!input) input_token.length = 0;
|
||||
else
|
||||
{
|
||||
if ((idx = get_buffer_index( input, SECBUFFER_TOKEN )) == -1) return SEC_E_INVALID_TOKEN;
|
||||
input_token.length = input->pBuffers[idx].cbBuffer;
|
||||
input_token.value = input->pBuffers[idx].pvBuffer;
|
||||
if ((idx = get_buffer_index( input, SECBUFFER_TOKEN )) == -1)
|
||||
input_token.length = 0;
|
||||
else
|
||||
{
|
||||
input_token.length = input->pBuffers[idx].cbBuffer;
|
||||
input_token.value = input->pBuffers[idx].pvBuffer;
|
||||
}
|
||||
}
|
||||
|
||||
if ((idx = get_buffer_index( output, SECBUFFER_TOKEN )) == -1) return SEC_E_INVALID_TOKEN;
|
||||
|
|
Loading…
Reference in New Issue