VirtualBox

Changeset 85285 in vbox for trunk/src/VBox/Main/xml


Ignore:
Timestamp:
Jul 12, 2020 3:20:03 PM (5 years ago)
Author:
vboxsync
Message:

Main/Settings.cpp: Signed/unsigned conversion issue. bugref:9790

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/xml/Settings.cpp

    r84626 r85285  
    352352    if (strVersion.length() > 3)
    353353    {
    354         uint32_t ulMajor = 0;
    355         uint32_t ulMinor = 0;
    356 
    357354        const char *pcsz = strVersion.c_str();
    358         char c;
    359 
    360         while (    (c = *pcsz)
    361                 && RT_C_IS_DIGIT(c)
    362               )
    363         {
    364             ulMajor *= 10;
    365             ulMajor += c - '0';
     355
     356        uint32_t uMajor = 0;
     357        char ch;
     358        while (   (ch = *pcsz)
     359               && RT_C_IS_DIGIT(ch) )
     360        {
     361            uMajor *= 10;
     362            uMajor += (uint32_t)(ch - '0');
    366363            ++pcsz;
    367364        }
    368365
    369         if (*pcsz++ == '.')
    370         {
    371             while (    (c = *pcsz)
    372                     && RT_C_IS_DIGIT(c)
    373                   )
    374             {
    375                 ulMinor *= 10;
    376                 ulMinor += c - '0';
     366        uint32_t uMinor = 0;
     367        if (ch == '.')
     368        {
     369            pcsz++;
     370            while (   (ch = *pcsz)
     371                   && RT_C_IS_DIGIT(ch))
     372            {
     373                uMinor *= 10;
     374                uMinor += (ULONG)(ch - '0');
    377375                ++pcsz;
    378376            }
    379377        }
    380378
    381         if (ulMajor == 1)
    382         {
    383             if (ulMinor == 3)
     379        if (uMajor == 1)
     380        {
     381            if (uMinor == 3)
    384382                sv = SettingsVersion_v1_3;
    385             else if (ulMinor == 4)
     383            else if (uMinor == 4)
    386384                sv = SettingsVersion_v1_4;
    387             else if (ulMinor == 5)
     385            else if (uMinor == 5)
    388386                sv = SettingsVersion_v1_5;
    389             else if (ulMinor == 6)
     387            else if (uMinor == 6)
    390388                sv = SettingsVersion_v1_6;
    391             else if (ulMinor == 7)
     389            else if (uMinor == 7)
    392390                sv = SettingsVersion_v1_7;
    393             else if (ulMinor == 8)
     391            else if (uMinor == 8)
    394392                sv = SettingsVersion_v1_8;
    395             else if (ulMinor == 9)
     393            else if (uMinor == 9)
    396394                sv = SettingsVersion_v1_9;
    397             else if (ulMinor == 10)
     395            else if (uMinor == 10)
    398396                sv = SettingsVersion_v1_10;
    399             else if (ulMinor == 11)
     397            else if (uMinor == 11)
    400398                sv = SettingsVersion_v1_11;
    401             else if (ulMinor == 12)
     399            else if (uMinor == 12)
    402400                sv = SettingsVersion_v1_12;
    403             else if (ulMinor == 13)
     401            else if (uMinor == 13)
    404402                sv = SettingsVersion_v1_13;
    405             else if (ulMinor == 14)
     403            else if (uMinor == 14)
    406404                sv = SettingsVersion_v1_14;
    407             else if (ulMinor == 15)
     405            else if (uMinor == 15)
    408406                sv = SettingsVersion_v1_15;
    409             else if (ulMinor == 16)
     407            else if (uMinor == 16)
    410408                sv = SettingsVersion_v1_16;
    411             else if (ulMinor == 17)
     409            else if (uMinor == 17)
    412410                sv = SettingsVersion_v1_17;
    413             else if (ulMinor == 18)
     411            else if (uMinor == 18)
    414412                sv = SettingsVersion_v1_18;
    415             else if (ulMinor > 18)
     413            else if (uMinor > 18)
    416414                sv = SettingsVersion_Future;
    417415        }
    418         else if (ulMajor > 1)
     416        else if (uMajor > 1)
    419417            sv = SettingsVersion_Future;
    420418
    421         Log(("Parsed settings version %d.%d to enum value %d\n", ulMajor, ulMinor, sv));
     419        Log(("Parsed settings version %d.%d to enum value %d\n", uMajor, uMinor, sv));
    422420    }
    423421
     
    534532    else if (cbOut < 0)
    535533        throw ConfigFileError(this, pElm, N_("Base64 encoded data '%s' invalid"), psz);
    536     binary.resize(cbOut);
     534    binary.resize((size_t)cbOut);
    537535    int vrc = VINF_SUCCESS;
    538536    if (cbOut)
    539         vrc = RTBase64Decode(psz, &binary.front(), cbOut, NULL, NULL);
     537        vrc = RTBase64Decode(psz, &binary.front(), (size_t)cbOut, NULL, NULL);
    540538    if (RT_FAILURE(vrc))
    541539    {
     
    565563 * @param str
    566564 * @param binary
     565 * @throws std::bad_alloc and ConfigFileError
    567566 */
    568567void ConfigFileBase::toBase64(com::Utf8Str &str, const IconBlob &binary) const
    569568{
    570     ssize_t cb = binary.size();
     569    size_t cb = binary.size();
    571570    if (cb > 0)
    572571    {
    573         ssize_t cchOut = RTBase64EncodedLength(cb);
    574         str.reserve(cchOut+1);
    575         int vrc = RTBase64Encode(&binary.front(), cb,
    576                                  str.mutableRaw(), str.capacity(),
    577                                  NULL);
     572        size_t cchOut = RTBase64EncodedLength(cb);
     573        str.reserve(cchOut + 1);
     574        int vrc = RTBase64Encode(&binary.front(), cb, str.mutableRaw(), str.capacity(), NULL);
    578575        if (RT_FAILURE(vrc))
    579576            throw ConfigFileError(this, NULL, N_("Failed to convert binary data to base64 format (%Rrc)"), vrc);
     
    21562153                {
    21572154                    const char *pszEnd  = strchr(psz, ',');
    2158                     size_t      cchHost = pszEnd ? pszEnd - psz : strlen(psz);
     2155                    size_t      cchHost = pszEnd ? (size_t)(pszEnd - psz) : strlen(psz);
    21592156                    while (cchHost > 0 && RT_C_IS_SPACE(psz[cchHost - 1]))
    21602157                        cchHost--;
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