VirtualBox

Ignore:
Timestamp:
Apr 30, 2015 3:15:15 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
99930
Message:

IPRT: Added RTEnvCreateChangeRecord, RTEnvApplyChanges RTEnvIsChangeRecord and RTEnvGetByIndexRawEx for the purpose of creating a block of environment changes. The use case for this is guest control.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r3/win/env-win.cpp

    r50408 r55562  
    5454RTDECL(bool) RTEnvExistsUtf8(const char *pszVar)
    5555{
     56    AssertReturn(strchr(pszVar, '=') == NULL, false);
     57
    5658    PRTUTF16 pwszVar;
    5759    int rc = RTStrToUtf16(pszVar, &pwszVar);
     
    6567RTDECL(const char *) RTEnvGetBad(const char *pszVar)
    6668{
     69    AssertReturn(strchr(pszVar, '=') == NULL, NULL);
    6770    return getenv(pszVar);
    6871}
     
    8184    AssertPtrNullReturn(pcchActual, VERR_INVALID_POINTER);
    8285    AssertReturn(pcchActual || (pszValue && cbValue), VERR_INVALID_PARAMETER);
     86    AssertReturn(strchr(pszVar, '=') == NULL, VERR_ENV_INVALID_VAR_NAME);
    8387
    8488    if (pcchActual)
     
    8791    PRTUTF16 pwszVar;
    8892    int rc = RTStrToUtf16(pszVar, &pwszVar);
    89     AssertRCReturn(rc, false);
     93    AssertRCReturn(rc, rc);
    9094
    9195    /** @todo Consider _wgetenv_s or GetEnvironmentVariableW here to avoid the
     
    140144RTDECL(int) RTEnvSetBad(const char *pszVar, const char *pszValue)
    141145{
     146    AssertMsgReturn(strchr(pszVar, '=') == NULL, ("'%s'\n", pszVar), VERR_ENV_INVALID_VAR_NAME);
     147
    142148    /* make a local copy and feed it to putenv. */
    143149    const size_t cchVar = strlen(pszVar);
     
    167173RTDECL(int) RTEnvSetUtf8(const char *pszVar, const char *pszValue)
    168174{
     175    AssertReturn(strchr(pszVar, '=') == NULL, VERR_ENV_INVALID_VAR_NAME);
     176
    169177    size_t cwcVar;
    170178    int rc = RTStrCalcUtf16LenEx(pszVar, RTSTR_MAX, &cwcVar);
     
    204212RTDECL(int) RTEnvUnsetBad(const char *pszVar)
    205213{
    206     AssertReturn(!strchr(pszVar, '='), VERR_INVALID_PARAMETER);
     214    AssertReturn(strchr(pszVar, '=') == NULL, VERR_ENV_INVALID_VAR_NAME);
    207215
    208216    /*
     
    244252RTDECL(int) RTEnvUnsetUtf8(const char *pszVar)
    245253{
     254    AssertReturn(strchr(pszVar, '=') == NULL, VERR_ENV_INVALID_VAR_NAME);
     255
    246256    size_t cwcVar;
    247257    int rc = RTStrCalcUtf16LenEx(pszVar, RTSTR_MAX, &cwcVar);
Note: See TracChangeset for help on using the changeset viewer.

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