VirtualBox

Changeset 42069 in vbox for trunk/src/VBox/Main/src-server


Ignore:
Timestamp:
Jul 9, 2012 6:10:08 PM (13 years ago)
Author:
vboxsync
Message:

Autostart: Simplify getting the username, use the new IPRT API

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/generic/AutostartDb-generic.cpp

    r41999 r42069  
    3232#if defined(RT_OS_LINUX)
    3333/**
    34  * Return the username of the current process.
    35  *
    36  * @returns Pointer to the string containing the username of
    37  *          NULL in case of an error. Free with RTMemFree().
    38  */
    39 static int autostartGetProcessUser(char **ppszUser)
    40 {
    41     int rc = VINF_SUCCESS;
    42     size_t cbUser = 128;
    43     char *pszUser = (char *)RTMemAllocZ(cbUser);
    44 
    45     if (pszUser)
    46     {
    47         rc = RTProcQueryUsername(RTProcSelf(), pszUser, cbUser, &cbUser);
    48         if (rc == VERR_BUFFER_OVERFLOW)
    49         {
    50             char *pszTmp = (char *)RTMemRealloc(pszUser, cbUser);
    51             if (pszTmp)
    52             {
    53                 pszUser = pszTmp;
    54                 rc = RTProcQueryUsername(RTProcSelf(), pszUser, cbUser, &cbUser);
    55                 Assert(rc != VERR_BUFFER_OVERFLOW);
    56             }
    57         }
    58 
    59         if (RT_FAILURE(rc))
    60         {
    61             RTMemFree(pszUser);
    62             pszUser = NULL;
    63         }
    64         else
    65             *ppszUser = pszUser;
    66     }
    67 
    68     return rc;
    69 }
    70 
    71 /**
    7234 * Modifies the autostart database.
    7335 *
     
    8143    char *pszUser = NULL;
    8244
    83     rc = autostartGetProcessUser(&pszUser);
    84     if (   RT_SUCCESS(rc)
    85         && pszUser)
     45    rc = RTProcQueryUsernameA(RTProcSelf(), &pszUser);
     46    if (RT_SUCCESS(rc))
    8647    {
    8748        char *pszFile;
    8849        uint64_t fOpen = RTFILE_O_DENY_ALL | RTFILE_O_READWRITE;
    8950        RTFILE hAutostartFile;
     51
     52        AssertPtr(pszUser);
    9053
    9154        if (fAddVM)
     
    162125            RTStrFree(pszFile);
    163126        }
     127
     128        RTStrFree(pszUser);
    164129    }
    165     else if (pszUser)
    166         rc = VERR_NOT_SUPPORTED;
    167130
    168131    return rc;
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