Changeset 84140 in vbox for trunk/src/VBox/Additions/common/VBoxService
- Timestamp:
- May 4, 2020 7:23:13 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlProcess.cpp
r83609 r84140 1556 1556 * Create the environment. 1557 1557 */ 1558 uint32_t const cbEnv = pProcess->StartupInfo.cbEnv; 1559 if (RT_SUCCESS(rc)) 1560 AssertStmt( cbEnv <= sizeof(pProcess->StartupInfo.szEnv) 1561 || pProcess->StartupInfo.uNumEnvVars == 0, 1562 rc = VERR_INVALID_PARAMETER); 1558 1563 if (RT_SUCCESS(rc)) 1559 1564 { … … 1563 1568 { 1564 1569 VGSvcVerbose(3, "Additional environment variables: %RU32 (%RU32 bytes)\n", 1565 pProcess->StartupInfo.uNumEnvVars, pProcess->StartupInfo.cbEnv);1566 1567 if ( pProcess->StartupInfo.uNumEnvVars 1568 && pProcess->StartupInfo.cbEnv)1570 pProcess->StartupInfo.uNumEnvVars, cbEnv); 1571 1572 if ( pProcess->StartupInfo.uNumEnvVars /** @todo r=bird: s/uNumEnvVars/cEnvVars/g */ 1573 && cbEnv > 0) 1569 1574 { 1570 uint32_t cbCur = 0; 1571 const char *pszCur = pProcess->StartupInfo.szEnv; 1572 while (cbCur < pProcess->StartupInfo.cbEnv) 1575 size_t offCur = 0; 1576 while (offCur < cbEnv) 1573 1577 { 1578 const char * const pszCur = &pProcess->StartupInfo.szEnv[offCur]; 1579 size_t const cchCur = RTStrNLen(pszCur, cbEnv - offCur); 1580 AssertBreakStmt(cchCur < cbEnv - offCur, rc = VERR_INVALID_PARAMETER); 1574 1581 VGSvcVerbose(3, "Setting environment variable: '%s'\n", pszCur); 1575 1582 rc = RTEnvPutEx(hEnv, pszCur); 1576 if (RT_FAILURE(rc)) 1583 if (RT_SUCCESS(rc)) 1584 offCur += cchCur + 1; 1585 else 1577 1586 { 1578 1587 VGSvcError("Setting environment variable '%s' failed: %Rrc\n", pszCur, rc); 1579 1588 break; 1580 1589 } 1581 cbCur += (uint32_t)strlen(pszCur) + 1;1582 AssertBreakStmt(cbCur <= GUESTPROCESS_MAX_ENV_LEN , rc = VERR_INVALID_PARAMETER);1583 AssertBreakStmt(cbCur <= pProcess->StartupInfo.cbEnv, rc = VERR_INVALID_PARAMETER);1584 pszCur += cbCur;1585 1590 } 1586 1591 }
Note:
See TracChangeset
for help on using the changeset viewer.