Module: wine Branch: master Commit: 519f5cc20a5f849138c6c6a80cd5c3773c11d012 URL: https://gitlab.winehq.org/wine/wine/-/commit/519f5cc20a5f849138c6c6a80cd5c37...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Tue Aug 1 13:31:05 2023 +0300
secur32: Add a better stub for LsaApCallPackageUntrusted(NegGetCallerName).
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru
---
dlls/secur32/lsa.c | 6 +++++- dlls/secur32/negotiate.c | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/secur32/lsa.c b/dlls/secur32/lsa.c index fca290f4ae9..56d365edc7c 100644 --- a/dlls/secur32/lsa.c +++ b/dlls/secur32/lsa.c @@ -98,6 +98,10 @@ NTSTATUS WINAPI LsaCallAuthenticationPackage(HANDLE lsa_handle, ULONG package_id TRACE("%p,%lu,%p,%lu,%p,%p,%p\n", lsa_handle, package_id, in_buffer, in_buffer_length, out_buffer, out_buffer_length, status);
+ if (out_buffer) *out_buffer = NULL; + if (out_buffer_length) *out_buffer_length = 0; + if (status) *status = STATUS_SUCCESS; + for (i = 0; i < loaded_packages_count; i++) { if (loaded_packages[i].package_id == package_id) @@ -110,7 +114,7 @@ NTSTATUS WINAPI LsaCallAuthenticationPackage(HANDLE lsa_handle, ULONG package_id } }
- return STATUS_INVALID_PARAMETER; + return STATUS_NO_SUCH_PACKAGE; }
static struct lsa_handle *alloc_lsa_handle(ULONG magic) diff --git a/dlls/secur32/negotiate.c b/dlls/secur32/negotiate.c index c5d89a38228..323d14e9eaa 100644 --- a/dlls/secur32/negotiate.c +++ b/dlls/secur32/negotiate.c @@ -71,9 +71,23 @@ static WCHAR negotiate_comment_W[] = static NTSTATUS NTAPI nego_LsaApCallPackageUntrusted( PLSA_CLIENT_REQUEST req, void *in_buf, void *client_buf_base, ULONG in_buf_len, void **out_buf, ULONG *out_buf_len, NTSTATUS *ret_status ) { + ULONG *MessageType; + FIXME("%p, %p, %p, %lu, %p, %p, %p: stub\n", req, in_buf, client_buf_base, in_buf_len, out_buf, out_buf_len, ret_status);
- return SEC_E_UNSUPPORTED_FUNCTION; + if (!in_buf || in_buf_len < sizeof(*MessageType) || !out_buf || !out_buf_len || !ret_status) + return STATUS_INVALID_PARAMETER; + + MessageType = in_buf; + switch (*MessageType) + { + case 1: /* NegGetCallerName */ + *ret_status = STATUS_NO_SUCH_LOGON_SESSION; + return STATUS_SUCCESS; + + default: + return SEC_E_UNSUPPORTED_FUNCTION; + } }
static NTSTATUS NTAPI nego_LsaApInitializePackage( ULONG package_id, PLSA_DISPATCH_TABLE dispatch,