VirtualBox

Changeset 59554 in vbox


Ignore:
Timestamp:
Feb 2, 2016 2:01:52 AM (9 years ago)
Author:
vboxsync
Message:

RTManifestReadStandardEx: Don't assume spaces between the attribute name and the entry, i.e. SHA1(my.ovf)=digest

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/checksum/manifest2.cpp

    r57974 r59554  
    13181318         * Read the attribute name.
    13191319         */
     1320        char ch;
    13201321        const char * const pszAttr = psz;
    13211322        do
    13221323            psz++;
    1323         while (!RT_C_IS_BLANK(*psz) && *psz);
    1324         if (*psz)
     1324        while (!RT_C_IS_BLANK((ch = *psz)) && ch && ch != '(');
     1325        if (ch)
    13251326            *psz++ = '\0';
    13261327
     
    13281329         * The entry name is enclosed in parenthesis and followed by a '='.
    13291330         */
    1330         psz = RTStrStripL(psz);
    1331         if (*psz != '(')
    1332         {
    1333             RTStrPrintf(pszErr, cbErr, "Expected '(' after %zu on line %u", psz - szLine, iLine);
    1334             return VERR_PARSE_ERROR;
    1335         }
    1336         const char * const pszName = ++psz;
    1337         while (*psz)
    1338         {
    1339             if (*psz == ')')
     1331        if (ch != '(')
     1332        {
     1333            psz = RTStrStripL(psz);
     1334            ch = *psz++;
     1335            if (ch != '(')
     1336            {
     1337                RTStrPrintf(pszErr, cbErr, "Expected '(' after %zu on line %u", psz - szLine - 1, iLine);
     1338                return VERR_PARSE_ERROR;
     1339            }
     1340        }
     1341        const char * const pszName = psz;
     1342        while ((ch = *psz) != '\0')
     1343        {
     1344            if (ch == ')')
    13401345            {
    13411346                char *psz2 = RTStrStripL(psz + 1);
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