VirtualBox

Ignore:
Timestamp:
Dec 7, 2017 3:36:52 PM (7 years ago)
Author:
vboxsync
Message:

iprt/vfschain: Fixed anther parser escape thingy

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/vfs/vfschain.cpp

    r69813 r69984  
    656656 *
    657657 * @returns The offset of the end character relative to @a psz.
    658  * @param   psz                 The argument string.
     658 * @param   psz             The argument string.
     659 * @param   chCloseParen    The closing parenthesis.
    659660 */
    660 static size_t rtVfsChainSpecFindArgEnd(const char *psz)
     661static size_t rtVfsChainSpecFindArgEnd(const char *psz, char const chCloseParen)
    661662{
    662663    size_t off = 0;
     
    664665    while (  (ch = psz[off]) != '\0'
    665666           && ch != ','
    666            && ch != ')'
    667            && ch != '}')
     667           && ch != chCloseParen)
    668668    {
    669669        if (   ch == '\\'
     
    778778            break;
    779779        }
     780        char const chCloseParen = (chOpenParen == '(' ? ')' : '}');
    780781        pszSrc = RTStrStripL(pszSrc + cch + 1);
    781782
     
    783784         * The name of the element provider.
    784785         */
    785         cch = rtVfsChainSpecFindArgEnd(pszSrc);
     786        cch = rtVfsChainSpecFindArgEnd(pszSrc, chCloseParen);
    786787        if (!cch)
    787788        {
     
    800801        {
    801802            pszSrc = RTStrStripL(pszSrc + 1);
    802             cch = rtVfsChainSpecFindArgEnd(pszSrc);
     803            cch = rtVfsChainSpecFindArgEnd(pszSrc, chCloseParen);
    803804            rc = rtVfsChainSpecElementAddArg(pElement, pszSrc, cch, (uint16_t)(pszSrc - pszSpec));
    804805            if (RT_FAILURE(rc))
     
    810811
    811812        /* Must end with a right parentheses/curly. */
    812         if (*pszSrc != (chOpenParen == '(' ? ')' : '}'))
     813        if (*pszSrc != chCloseParen)
    813814        {
    814815            rc = VERR_VFS_CHAIN_EXPECTED_RIGHT_PARENTHESES;
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