done:
if (AliasHandle != NULL)
- SamCloseHandle(AliasHandle);
+ {
+ if (ApiStatus != NERR_Success)
+ SamDeleteAlias(AliasHandle);
+ else
+ SamCloseHandle(AliasHandle);
+ }
if (DomainHandle != NULL)
SamCloseHandle(DomainHandle);
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;
}
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;
}
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;
}