https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dcaf5686cedc439f7a0e604ee99858b3b4a6bdc0

commit dcaf5686cedc439f7a0e604ee99858b3b4a6bdc0
Author:     David L Bean <[email protected]>
AuthorDate: Wed Jul 26 18:58:44 2023 -0400
Commit:     GitHub <[email protected]>
CommitDate: Thu Jul 27 01:58:44 2023 +0300

    [ADVAPI32] Don't treat a structure pointer as a string pointer (#5478)
    
    Add a string pointer local variable, assign it and operate on it.
    This should eliminate an exception and make LsapIsLocalComputer()
    function operate correctly.
    
    CORE-18996
---
 dll/win32/advapi32/sec/lsa.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/dll/win32/advapi32/sec/lsa.c b/dll/win32/advapi32/sec/lsa.c
index f88cc664e66..4b137aaecb9 100644
--- a/dll/win32/advapi32/sec/lsa.c
+++ b/dll/win32/advapi32/sec/lsa.c
@@ -23,15 +23,17 @@ LsapIsLocalComputer(PLSA_UNICODE_STRING ServerName)
     DWORD dwSize = MAX_COMPUTERNAME_LENGTH + 1;
     BOOL Result;
     LPWSTR buf;
+    PCWSTR pSrvName;
 
     if (ServerName == NULL || ServerName->Length == 0 || ServerName->Buffer == 
NULL)
         return TRUE;
 
+    pSrvName = ServerName->Buffer;
     buf = HeapAlloc(GetProcessHeap(), 0, dwSize * sizeof(WCHAR));
     Result = GetComputerNameW(buf, &dwSize);
-    if (Result && (ServerName->Buffer[0] == '\\') && (ServerName->Buffer[1] == 
'\\'))
-        ServerName += 2;
-    Result = Result && !lstrcmpW(ServerName->Buffer, buf);
+    if (Result && (pSrvName[0] == L'\\') && (pSrvName[1] == L'\\'))
+        pSrvName += 2;
+    Result = Result && !lstrcmpW(pSrvName, buf);
     HeapFree(GetProcessHeap(), 0, buf);
 
     return Result;

Reply via email to