VirtualBox

Changeset 64285 in vbox for trunk/src/VBox/Additions


Ignore:
Timestamp:
Oct 16, 2016 8:08:03 PM (8 years ago)
Author:
vboxsync
Message:

Additions: bugref:8622: Use crc of user name in name of ipc pipe

Location:
trunk/src/VBox/Additions
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Installer/InstallHelper/VBoxGuestInstallHelper.cpp

    r63089 r64285  
    3434#include <iprt/mem.h>
    3535#include <iprt/string.h>
     36#include <iprt/localipc.h>
    3637
    3738/* Required structures/defines of VBoxTray. */
     
    152153        if (RT_SUCCESS(rc))
    153154        {
    154             char szPipeName[255];
    155             if (RTStrPrintf(szPipeName, sizeof(szPipeName), "%s%s",
    156                             VBOXTRAY_IPC_PIPE_PREFIX, pszUserName))
     155            char szPipeName[80];
     156            size_t cbPipeName = sizeof(szPipeName);
     157            rc = RTLocalIpcMakeNameUniqueUser(VBOXTRAY_IPC_PIPE_PREFIX, pszUserName, szPipeName, &cbPipeName);
     158            if (RT_SUCCESS(rc))
    157159            {
    158160                rc = RTLocalIpcSessionConnect(phSession, szPipeName, 0 /* Flags */);
    159161            }
    160             else
    161                 rc = VERR_NO_MEMORY;
    162162
    163163            RTStrFree(pszUserName);
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxIPC.cpp

    r63549 r64285  
    175175}
    176176
     177
    177178/**
    178179 * Initializes the IPC communication.
     
    195196    if (RT_SUCCESS(rc))
    196197    {
    197         char szPipeName[512 + sizeof(VBOXTRAY_IPC_PIPE_PREFIX)];
    198         strcpy(szPipeName, VBOXTRAY_IPC_PIPE_PREFIX);
     198        char szUserName[512];
    199199        rc = RTProcQueryUsername(NIL_RTPROCESS,
    200                                  &szPipeName[sizeof(VBOXTRAY_IPC_PIPE_PREFIX) - 1],
    201                                  sizeof(szPipeName) - sizeof(VBOXTRAY_IPC_PIPE_PREFIX) + 1,
     200                                 szUserName,
     201                                 sizeof(szUserName),
    202202                                 NULL /*pcbUser*/);
    203203        if (RT_SUCCESS(rc))
    204204        {
    205             rc = RTLocalIpcServerCreate(&pCtx->hServer, szPipeName, 0 /*fFlags*/);
     205            char szPipeName[80];
     206            size_t cbPipeName = sizeof(szPipeName);
     207            rc = RTLocalIpcMakeNameUniqueUser(VBOXTRAY_IPC_PIPE_PREFIX, szUserName, szPipeName, &cbPipeName);
    206208            if (RT_SUCCESS(rc))
    207209            {
    208                 pCtx->pEnv = pEnv;
    209                 RTListInit(&pCtx->SessionList);
    210 
    211                 *ppInstance = pCtx;
    212 
    213                 /* GetLastInputInfo only is available starting at Windows 2000 -- might fail. */
    214                 g_pfnGetLastInputInfo = (PFNGETLASTINPUTINFO)
    215                     RTLdrGetSystemSymbol("User32.dll", "GetLastInputInfo");
    216 
    217                 LogRelFunc(("Local IPC server now running at \"%s\"\n", szPipeName));
    218                 return VINF_SUCCESS;
    219             }
    220 
     210
     211                rc = RTLocalIpcServerCreate(&pCtx->hServer, szPipeName, 0 /*fFlags*/);
     212                if (RT_SUCCESS(rc))
     213                {
     214                    pCtx->pEnv = pEnv;
     215                    RTListInit(&pCtx->SessionList);
     216
     217                    *ppInstance = pCtx;
     218
     219                    /* GetLastInputInfo only is available starting at Windows 2000 -- might fail. */
     220                    g_pfnGetLastInputInfo = (PFNGETLASTINPUTINFO)
     221                        RTLdrGetSystemSymbol("User32.dll", "GetLastInputInfo");
     222
     223                    LogRelFunc(("Local IPC server now running at \"%s\"\n", szPipeName));
     224                    return VINF_SUCCESS;
     225                }
     226
     227            }
    221228        }
    222229
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxTray.cpp

    r63099 r64285  
    308308            LogRel(("Failed to initialize service '%s', rc=%Rrc\n", pSvc->pDesc->pszName, rc2));
    309309            if (rc2 == VERR_NOT_SUPPORTED)
    310             {
    311310                LogRel(("Service '%s' is not supported on this system\n", pSvc->pDesc->pszName));
    312                 rc2 = VINF_SUCCESS;
    313             }
     311            rc2 = VINF_SUCCESS;
    314312            /* Keep going. */
    315313        }
  • trunk/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp

    r62851 r64285  
    3939#include <iprt/time.h>
    4040#include <iprt/thread.h>
     41
    4142
    4243#include <VBox/VBoxGuestLib.h>
     
    955956
    956957    int rc = VINF_SUCCESS;
    957 
    958     char szPipeName[255];
     958    char szPipeName[80];
     959    size_t cbPipeName = sizeof(szPipeName);
     960    rc = RTLocalIpcMakeNameUniqueUser(VBOXTRAY_IPC_PIPE_PREFIX, pszUser, szPipeName, &cbPipeName);
    959961/** @todo r=bird:  Pointless if.  */
    960     if (RTStrPrintf(szPipeName, sizeof(szPipeName), "%s%s", VBOXTRAY_IPC_PIPE_PREFIX, pszUser))
     962    if (RT_SUCCESS(rc))
    961963    {
    962964        bool fReportToHost = false;
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