VirtualBox

Changeset 31000 in vbox


Ignore:
Timestamp:
Jul 22, 2010 2:44:22 PM (15 years ago)
Author:
vboxsync
Message:

VBoxService/VMInfo: Tabs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp

    r30999 r31000  
    251251    uint32_t cListSize = 32;
    252252
    253         /* Allocate a first array to hold 32 users max. */
    254         char **aUsers = (char**)RTMemAllocZ(cListSize * sizeof(char*));
    255         if (aUsers == NULL)
    256                 rc = VERR_NO_MEMORY;
    257 
    258         /* Process all entries in the utmp file. */
    259     while (   (ut_user = getutent()) 
     253    /* Allocate a first array to hold 32 users max. */
     254    char **aUsers = (char**)RTMemAllocZ(cListSize * sizeof(char*));
     255    if (aUsers == NULL)
     256        rc = VERR_NO_MEMORY;
     257
     258    /* Process all entries in the utmp file. */
     259    while (   (ut_user = getutent())
    260260           && RT_SUCCESS(rc))
    261261    {
    262                 VBoxServiceVerbose(1, "bar: %s\n", ut_user->ut_user);
    263                
    264                 if (cUtmpEntries > cListSize)
    265                 {
    266                         cListSize += 32;
    267                         aUsers = (char**)RTMemRealloc(aUsers, cListSize * sizeof(char*));
    268                         AssertPtrBreakStmt(aUsers, rc = VERR_NO_MEMORY);
    269                 }
    270                
     262        VBoxServiceVerbose(1, "bar: %s\n", ut_user->ut_user);
     263
     264        if (cUtmpEntries > cListSize)
     265        {
     266            cListSize += 32;
     267            aUsers = (char**)RTMemRealloc(aUsers, cListSize * sizeof(char*));
     268            AssertPtrBreakStmt(aUsers, rc = VERR_NO_MEMORY);
     269        }
     270
    271271        /* Make sure we don't add user names which are not
    272272         * part of type USER_PROCESS. */
    273273        if (ut_user->ut_type == USER_PROCESS)
    274         {               
    275                         cUtmpEntries++;
    276                        
    277                         bool fFound = false;
    278                         for (uint32_t u = 0; u < cUsersInList && !fFound; u++)
    279                                 fFound = (strcmp((const char*)aUsers[u], ut_user->ut_user) == 0) ? true : false;
     274        {
     275            cUtmpEntries++;
     276
     277            bool fFound = false;
     278            for (uint32_t u = 0; u < cUsersInList && !fFound; u++)
     279                fFound = (strcmp((const char*)aUsers[u], ut_user->ut_user) == 0) ? true : false;
    280280
    281281            if (!fFound)
    282                                 rc = RTStrAAppend(&aUsers[cUsersInList++], (const char*)ut_user->ut_user);
    283                 }
    284     }
    285    
     282                rc = RTStrAAppend(&aUsers[cUsersInList++], (const char*)ut_user->ut_user);
     283        }
     284    }
     285
    286286    /* Build final user list. */
    287         for (uint32_t u = 0; u < cUsersInList; u++)
    288         {
    289                 if (u > 0)
    290                 {
    291                         rc = RTStrAAppend(&pszUserList, ",");
    292                         AssertRCBreakStmt(rc, RTStrFree(pszUserList));
    293                 }
    294                 rc = RTStrAAppend(&pszUserList, (const char*)aUsers[u]);
    295                 AssertRCBreakStmt(rc, RTStrFree(pszUserList));
    296         }
    297 
    298         /* Cleanup. */
    299         for (uint32_t u = 0; u < cUsersInList; u++)
    300                 RTStrFree(aUsers[u]);
    301         RTMemFree(aUsers); 
    302    
     287    for (uint32_t u = 0; u < cUsersInList; u++)
     288    {
     289        if (u > 0)
     290        {
     291            rc = RTStrAAppend(&pszUserList, ",");
     292            AssertRCBreakStmt(rc, RTStrFree(pszUserList));
     293        }
     294        rc = RTStrAAppend(&pszUserList, (const char*)aUsers[u]);
     295        AssertRCBreakStmt(rc, RTStrFree(pszUserList));
     296    }
     297
     298    /* Cleanup. */
     299    for (uint32_t u = 0; u < cUsersInList; u++)
     300        RTStrFree(aUsers[u]);
     301    RTMemFree(aUsers);
     302
    303303    endutent(); /* Close utmp file. */
    304304#endif
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette