-- v2: secur32: Also copy user function tables in nego_SpInitLsaModeContext() and nego_SpAcceptLsaModeContext().
From: Hans Leidekker hans@codeweavers.com
--- dlls/secur32/negotiate.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/dlls/secur32/negotiate.c b/dlls/secur32/negotiate.c index 323d14e9eaa..0f7d047dd60 100644 --- a/dlls/secur32/negotiate.c +++ b/dlls/secur32/negotiate.c @@ -225,6 +225,8 @@ static NTSTATUS NTAPI nego_SpInitLsaModeContext( LSA_SEC_HANDLE credential, LSA_ if (!(new_ctxt = ctxt = calloc( 1, sizeof(*ctxt) ))) return SEC_E_INSUFFICIENT_MEMORY; ctxt->krb = cred->krb; ctxt->ntlm = cred->ntlm; + ctxt->user_krb = cred->user_krb; + ctxt->user_ntlm = cred->user_ntlm; } if (!handle) return SEC_E_INVALID_HANDLE;
@@ -278,6 +280,8 @@ static NTSTATUS NTAPI nego_SpAcceptLsaModeContext( LSA_SEC_HANDLE credential, LS if (!(new_ctxt = ctxt = calloc( 1, sizeof(*ctxt) ))) return SEC_E_INSUFFICIENT_MEMORY; ctxt->krb = cred->krb; ctxt->ntlm = cred->ntlm; + ctxt->user_krb = cred->user_krb; + ctxt->user_ntlm = cred->user_ntlm; } if (!handle) return SEC_E_INVALID_HANDLE;
On Fri Aug 4 08:50:23 2023 +0000, **** wrote:
Dmitry Timoshkov replied on the mailing list:
Hans Leidekker <wine@gitlab.winehq.org> wrote: > --- a/dlls/secur32/negotiate.c > +++ b/dlls/secur32/negotiate.c > @@ -225,6 +225,8 @@ static NTSTATUS NTAPI nego_SpInitLsaModeContext( LSA_SEC_HANDLE credential, LSA_ > if (!(new_ctxt = ctxt = calloc( 1, sizeof(*ctxt) ))) return SEC_E_INSUFFICIENT_MEMORY; > ctxt->krb = cred->krb; > ctxt->ntlm = cred->ntlm; > + ctxt->user_krb = cred->user_krb; > + ctxt->user_ntlm = cred->user_ntlm; > } Thanks for spotting this. Probably same fix should be applied to SpAcceptLsaModeContext(). -- Dmitry.
Yes, done.