From: Dmitry Timoshkov dmitry@baikal.ru
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/kerberos/unixlib.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/dlls/kerberos/unixlib.c b/dlls/kerberos/unixlib.c index 159eb6a824e..46665bd554a 100644 --- a/dlls/kerberos/unixlib.c +++ b/dlls/kerberos/unixlib.c @@ -1273,6 +1273,12 @@ static NTSTATUS wow64_make_signature( void *args ) return make_signature( ¶ms ); }
+struct SecPkgContext_SessionKey32 +{ + ULONG SessionKeyLength; + PTR32 SessionKey; +}; + static NTSTATUS wow64_query_context_attributes( void *args ) { struct @@ -1287,6 +1293,17 @@ static NTSTATUS wow64_query_context_attributes( void *args ) params32->attr, ULongToPtr(params32->buf), }; + SecPkgContext_SessionKey key; + + if (params.attr == SECPKG_ATTR_SESSION_KEY) + { + struct SecPkgContext_SessionKey32 *key32 = (struct SecPkgContext_SessionKey32 *)params.buf; + + key.SessionKeyLength = key32->SessionKeyLength; + key.SessionKey = ULongToPtr(key32->SessionKey); + params.buf = &key; + } + return query_context_attributes( ¶ms ); }