From 79407a8027d2eed7ff455468831f42279720ab95 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Thu, 31 Mar 2016 21:48:43 +0000 Subject: [PATCH] [NET] Net utility not enumerating local user accounts. Patch by Curtis Wilson. CORE-11023 #resolve #comment Thanks a lot! svn path=/trunk/; revision=71087 --- .../base/applications/network/net/cmdUser.c | 53 +++++++++++-------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/reactos/base/applications/network/net/cmdUser.c b/reactos/base/applications/network/net/cmdUser.c index 7637ba9eee9..7f97ea36321 100644 --- a/reactos/base/applications/network/net/cmdUser.c +++ b/reactos/base/applications/network/net/cmdUser.c @@ -5,6 +5,7 @@ * PURPOSE: * * PROGRAMMERS: Eric Kohl + * Curtis Wilson */ #include "net.h" @@ -45,31 +46,37 @@ EnumerateUsers(VOID) NetApiBufferFree(pServer); - Status = NetUserEnum(NULL, - 0, - 0, - (LPBYTE*)&pBuffer, - MAX_PREFERRED_LENGTH, - &dwRead, - &dwTotal, - &ResumeHandle); - if (Status != NERR_Success) - return Status; - - qsort(pBuffer, - dwRead, - sizeof(PUSER_INFO_0), - CompareInfo); - -// printf("dwRead: %lu dwTotal: %lu\n", dwRead, dwTotal); - for (i = 0; i < dwRead; i++) + do { -// printf("%p\n", pBuffer[i].lgrpi0_name); - if (pBuffer[i].usri0_name) - PrintToConsole(L"%s\n", pBuffer[i].usri0_name); - } + Status = NetUserEnum(NULL, + 0, + 0, + (LPBYTE*)&pBuffer, + MAX_PREFERRED_LENGTH, + &dwRead, + &dwTotal, + &ResumeHandle); + if ((Status != NERR_Success) && (Status != ERROR_MORE_DATA)) + return Status; - NetApiBufferFree(pBuffer); + qsort(pBuffer, + dwRead, + sizeof(PUSER_INFO_0), + CompareInfo); + + for (i = 0; i < dwRead; i++) + { + if (pBuffer[i].usri0_name) + PrintToConsole(L"%s\n", pBuffer[i].usri0_name); + } + + if (pBuffer != NULL) + { + NetApiBufferFree(pBuffer); + pBuffer = NULL; + } + } + while (Status == ERROR_MORE_DATA); return NERR_Success; }