Aric Stewart : advapi32: Handle well qualified names in LookupAccountNameW for account names.

Alexandre Julliard julliard at winehq.org
Tue May 19 09:23:07 CDT 2009


Module: wine
Branch: master
Commit: fe30b79d72fbb51b1789be0792df6615ec4166a0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fe30b79d72fbb51b1789be0792df6615ec4166a0

Author: Aric Stewart <aric at codeweavers.com>
Date:   Mon May 18 14:47:36 2009 -0500

advapi32: Handle well qualified names in LookupAccountNameW for account names.

---

 dlls/advapi32/security.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 65e68ff..efe34f4 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -2753,13 +2753,23 @@ BOOL WINAPI LookupAccountNameW( LPCWSTR lpSystemName, LPCWSTR lpAccountName, PSI
 
     userName = HeapAlloc(GetProcessHeap(), 0, nameLen*sizeof(WCHAR));
 
-    if (GetUserNameW(userName, &nameLen) && !strcmpW(lpAccountName, userName))
+    if (lpDomainNamePtr)
+    {
+        /* check to make sure this account is on this computer */
+        if (GetComputerNameW(userName, &nameLen) && strcmpW(lpDomainNamePtr, userName))
+        {
+            SetLastError(ERROR_NONE_MAPPED);
+            ret = FALSE;
+        }
+    }
+
+    if (GetUserNameW(userName, &nameLen) && !strcmpW(lpAccountNamePtr, userName))
         ret = lookup_user_account_name(Sid, cbSid, ReferencedDomainName,
                                        cchReferencedDomainName, peUse);
     else
     {
         nameLen = UNLEN + 1;
-        if (GetComputerNameW(userName, &nameLen) && !strcmpW(lpAccountName, userName))
+        if (GetComputerNameW(userName, &nameLen) && !strcmpW(lpAccountNamePtr, userName))
             ret = lookup_computer_account_name(Sid, cbSid, ReferencedDomainName,
                                                cchReferencedDomainName, peUse);
         else




More information about the wine-cvs mailing list