[NETAPI32]
authorEric Kohl <eric.kohl@reactos.org>
Wed, 18 Sep 2013 18:02:36 +0000 (18:02 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Wed, 18 Sep 2013 18:02:36 +0000 (18:02 +0000)
- NetLocalGroupAdd: Delete the newly created alias if setting alias information fails.
- NetUserGetGroups, NetUserGetInfo and NetUserGetLocalGroups: Return NERR_UserNotFound if no matching user was found.

svn path=/trunk/; revision=60199

reactos/dll/win32/netapi32/local_group.c
reactos/dll/win32/netapi32/user.c

index 026beb6..6bdc76a 100644 (file)
@@ -468,7 +468,12 @@ NetLocalGroupAdd(
 
 done:
     if (AliasHandle != NULL)
-        SamCloseHandle(AliasHandle);
+    {
+        if (ApiStatus != NERR_Success)
+            SamDeleteAlias(AliasHandle);
+        else
+            SamCloseHandle(AliasHandle);
+    }
 
     if (DomainHandle != NULL)
         SamCloseHandle(DomainHandle);
index bcfd21f..ae99d2e 100644 (file)
@@ -2692,7 +2692,10 @@ NetUserGetGroups(LPCWSTR servername,
     if (!NT_SUCCESS(Status))
     {
         ERR("SamLookupNamesInDomain failed (Status %08lx)\n", Status);
-        ApiStatus = NetpNtStatusToApiStatus(Status);
+        if (Status == STATUS_NONE_MAPPED)
+            ApiStatus = NERR_UserNotFound;
+        else
+            ApiStatus = NetpNtStatusToApiStatus(Status);
         goto done;
     }
 
@@ -2846,7 +2849,10 @@ NetUserGetInfo(LPCWSTR servername,
     if (!NT_SUCCESS(Status))
     {
         ERR("SamOpenDomain failed (Status %08lx)\n", Status);
-        ApiStatus = NetpNtStatusToApiStatus(Status);
+        if (Status == STATUS_NONE_MAPPED)
+            ApiStatus = NERR_UserNotFound;
+        else
+            ApiStatus = NetpNtStatusToApiStatus(Status);
         goto done;
     }
 
@@ -3029,7 +3035,10 @@ NetUserGetLocalGroups(LPCWSTR servername,
     if (!NT_SUCCESS(Status))
     {
         ERR("SamLookupNamesInDomain failed (Status %08lx)\n", Status);
-        ApiStatus = NetpNtStatusToApiStatus(Status);
+        if (Status == STATUS_NONE_MAPPED)
+            ApiStatus = NERR_UserNotFound;
+        else
+            ApiStatus = NetpNtStatusToApiStatus(Status);
         goto done;
     }