https://git.reactos.org/?p=reactos.git;a=commitdiff;h=96466710f888aac0aa7fd…
commit 96466710f888aac0aa7fd2c5c89146234021eb82
Author: Eric Kohl <eric.kohl(a)reactos.org>
AuthorDate: Mon Mar 4 01:31:20 2019 +0100
Commit: Eric Kohl <eric.kohl(a)reactos.org>
CommitDate: Mon Mar 4 01:37:14 2019 +0100
[MSV1_0] LsaApLogonUser: Pass the Authenticating Authority to the caller.
---
dll/win32/msv1_0/msv1_0.c | 26 +++++++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/dll/win32/msv1_0/msv1_0.c b/dll/win32/msv1_0/msv1_0.c
index 1bb944e744..bdcdfc2f84 100644
--- a/dll/win32/msv1_0/msv1_0.c
+++ b/dll/win32/msv1_0/msv1_0.c
@@ -860,7 +860,7 @@ LsaApCallPackage(IN PLSA_CLIENT_REQUEST ClientRequest,
ULONG MessageType;
NTSTATUS Status;
- TRACE("()\n");
+ TRACE("LsaApCallPackage()\n");
if (SubmitBufferLength < sizeof(MSV1_0_PROTOCOL_MESSAGE_TYPE))
return STATUS_INVALID_PARAMETER;
@@ -920,7 +920,7 @@ LsaApCallPackagePassthrough(IN PLSA_CLIENT_REQUEST ClientRequest,
OUT PULONG ReturnBufferLength,
OUT PNTSTATUS ProtocolStatus)
{
- TRACE("()\n");
+ TRACE("LsaApCallPackagePassthrough()\n");
return STATUS_NOT_IMPLEMENTED;
}
@@ -938,7 +938,7 @@ LsaApCallPackageUntrusted(IN PLSA_CLIENT_REQUEST ClientRequest,
OUT PULONG ReturnBufferLength,
OUT PNTSTATUS ProtocolStatus)
{
- TRACE("()\n");
+ TRACE("LsaApCallPackageUntrusted()\n");
return STATUS_NOT_IMPLEMENTED;
}
@@ -957,7 +957,7 @@ LsaApInitializePackage(IN ULONG AuthenticationPackageId,
PANSI_STRING NameString;
PCHAR NameBuffer;
- TRACE("(%lu %p %p %p %p)\n",
+ TRACE("LsaApInitializePackage(%lu %p %p %p %p)\n",
AuthenticationPackageId, LsaDispatchTable, Database,
Confidentiality, AuthenticationPackageName);
@@ -1003,7 +1003,7 @@ VOID
NTAPI
LsaApLogonTerminated(IN PLUID LogonId)
{
- TRACE("()\n");
+ TRACE("LsaApLogonTerminated()\n");
}
@@ -1054,6 +1054,8 @@ LsaApLogonUser(IN PLSA_CLIENT_REQUEST ClientRequest,
*ProfileBuffer = NULL;
*ProfileBufferLength = 0;
*SubStatus = STATUS_SUCCESS;
+ *AccountName = NULL;
+ *AuthenticatingAuthority = NULL;
if (LogonType == Interactive ||
LogonType == Batch ||
@@ -1371,6 +1373,20 @@ done:
}
}
+ /* Return the authenticating authority */
+ *AuthenticatingAuthority = DispatchTable.AllocateLsaHeap(sizeof(UNICODE_STRING));
+ if (*AuthenticatingAuthority != NULL)
+ {
+ (*AuthenticatingAuthority)->Buffer =
DispatchTable.AllocateLsaHeap(LogonInfo->LogonDomainName.Length +
+
sizeof(UNICODE_NULL));
+ if ((*AuthenticatingAuthority)->Buffer != NULL)
+ {
+ (*AuthenticatingAuthority)->MaximumLength =
LogonInfo->LogonDomainName.Length +
+ sizeof(UNICODE_NULL);
+ RtlCopyUnicodeString(*AuthenticatingAuthority,
&LogonInfo->LogonDomainName);
+ }
+ }
+
if (!NT_SUCCESS(Status))
{
if (SessionCreated != FALSE)