VirtualBox

Changeset 42067 in vbox for trunk


Ignore:
Timestamp:
Jul 9, 2012 5:49:58 PM (13 years ago)
Author:
vboxsync
Message:

Runtime: New variant for RTProcQueryUsername which allocates the required string

Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/mangling.h

    r41920 r42067  
    964964# define RTProcIsRunningByName                          RT_MANGLER(RTProcIsRunningByName)
    965965# define RTProcQueryUsername                            RT_MANGLER(RTProcQueryUsername)
     966# define RTProcQueryUsernameA                           RT_MANGLER(RTProcQueryUsernameA)
    966967# define RTProcSelf                                     RT_MANGLER(RTProcSelf)
    967968# define RTProcSetPriority                              RT_MANGLER(RTProcSetPriority)
  • trunk/include/iprt/process.h

    r41919 r42067  
    379379                                    size_t *pcbUser);
    380380
     381/**
     382 * Query the username of the given process allocating the string for the username.
     383 *
     384 * @returns IPRT status code.
     385 * @param   hProcess     The process handle to query the username for.
     386 * @param   ppszUser     Where to store the pointer to the string containing
     387 *                       the username on success. Free with RTStrFree().
     388 */
     389RTR3DECL(int)   RTProcQueryUsernameA(RTPROCESS hProcess, char **ppszUser);
     390
    381391#endif /* IN_RING3 */
    382392
  • trunk/src/VBox/Runtime/Makefile.kmk

    r41911 r42067  
    453453        generic/RTLogWriteStdOut-generic.cpp \
    454454        generic/RTLogWriteUser-generic.cpp \
     455        generic/RTProcessQUeryUsernameA-generic.cpp \
    455456        generic/RTTimerLRCreate-generic.cpp \
    456457        generic/mempool-generic.cpp \
  • trunk/src/VBox/Runtime/testcase/tstRTProcQueryUsername.cpp

    r41952 r42067  
    3939    char abUser[1024];
    4040    size_t cbUser;
     41    char *pszUser = NULL;
     42
    4143    RTTestISub("Basics");
    4244
    4345    memset(abUser, 0, sizeof(abUser));
    44     RTTESTI_CHECK_RC(RTProcQueryUsername(RTProcSelf(), NULL, 8, &cbUser), VERR_INVALID_POINTER);
     46    RTTESTI_CHECK_RC(RTProcQueryUsername(RTProcSelf(), NULL, 8, &cbUser), VERR_INVALID_PARAMETER);
    4547    RTTESTI_CHECK_RC(RTProcQueryUsername(RTProcSelf(), abUser, 0, &cbUser), VERR_INVALID_PARAMETER);
    46     RTTESTI_CHECK_RC(RTProcQueryUsername(RTProcSelf(), abUser, sizeof(abUser), NULL), VERR_INVALID_POINTER);
     48    RTTESTI_CHECK_RC(RTProcQueryUsername(RTProcSelf(), NULL, 0, NULL), VERR_BUFFER_OVERFLOW);
     49    RTTESTI_CHECK_RC(RTProcQueryUsername(RTProcSelf(), NULL, 0, &cbUser), VERR_BUFFER_OVERFLOW);
    4750
    4851    RTTESTI_CHECK_RC(RTProcQueryUsername(RTProcSelf(), abUser, sizeof(abUser), &cbUser), VINF_SUCCESS);
    4952    RTTestPrintf(NULL, RTTESTLVL_ALWAYS, "Username: %s\n", abUser);
    5053    RTTESTI_CHECK_RC(RTProcQueryUsername(RTProcSelf(), abUser, cbUser - 1, &cbUser), VERR_BUFFER_OVERFLOW);
     54
     55    RTTESTI_CHECK_RC(RTProcQueryUsernameA(RTProcSelf(), NULL), VERR_INVALID_POINTER);
     56    RTTESTI_CHECK_RC(RTProcQueryUsernameA(RTProcSelf(), &pszUser), VINF_SUCCESS);
     57    RTTestPrintf(NULL, RTTESTLVL_ALWAYS, "Username: %s\n", pszUser);
     58    RTStrFree(pszUser);
    5159}
    5260
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