From: Konstantin Romanov incubusrk@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=53472 --- dlls/kerberos/krb5_ap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/kerberos/krb5_ap.c b/dlls/kerberos/krb5_ap.c index b600ff06052..9b37709d645 100644 --- a/dlls/kerberos/krb5_ap.c +++ b/dlls/kerberos/krb5_ap.c @@ -424,9 +424,9 @@ static NTSTATUS NTAPI kerberos_SpInitLsaModeContext( LSA_SEC_HANDLE credential, params.output_token_length = &output->pBuffers[idx].cbBuffer;
status = KRB5_CALL( initialize_context, ¶ms ); + *new_context = create_context_handle( context_handle, new_context_handle ); if (!status) { - *new_context = create_context_handle( context_handle, new_context_handle ); *mapped_context = TRUE; expiry_to_timestamp( exptime, expiry ); } @@ -473,9 +473,9 @@ static NTSTATUS NTAPI kerberos_SpAcceptLsaModeContext( LSA_SEC_HANDLE credential
/* FIXME: check if larger output buffer exists */ status = KRB5_CALL( accept_context, ¶ms ); + *new_context = create_context_handle( context_handle, new_context_handle ); if (!status) { - *new_context = create_context_handle( context_handle, new_context_handle ); *mapped_context = TRUE; expiry_to_timestamp( exptime, expiry ); }
Hans Leidekker (@hans) commented about dlls/kerberos/krb5_ap.c:
params.output_token_length = &output->pBuffers[idx].cbBuffer; status = KRB5_CALL( initialize_context, ¶ms );
*new_context = create_context_handle( context_handle, new_context_handle ); if (!status) {
*new_context = create_context_handle( context_handle, new_context_handle ); *mapped_context = TRUE; expiry_to_timestamp( exptime, expiry ); }
As I mentioned in the bug report, the new context is updated when initialize_context() returns SEC_E_OK or SEC_I_CONTINUE_NEEDED. That should be reflected here.