VirtualBox

Changeset 77625 in vbox


Ignore:
Timestamp:
Mar 8, 2019 8:44:54 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
129253
Message:

VBoxManage/handleCreateMedium: Build fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageDisk.cpp

    r77622 r77625  
    254254    const char *diffparent = NULL;
    255255    uint64_t size = 0;
    256     typedef struct MEDIUMPROPERTY_LIST {
     256    typedef struct MEDIUMPROPERTY_LIST
     257    {
    257258        struct MEDIUMPROPERTY_LIST *next;
    258         char *key;
    259         char *value;
     259        const char *key;
     260        const char *value;
    260261    } MEDIUMPROPERTY, *PMEDIUMPROPERTY;
    261262    PMEDIUMPROPERTY pMediumProps = NULL;
    262     enum {
     263    enum
     264    {
    263265        CMD_NONE,
    264266        CMD_DISK,
     
    326328                if (!pNewProp)
    327329                    return errorArgument("Can't allocate memory for property '%s'", ValueUnion.psz);
    328                 size_t cbKvp = RTStrNLen(ValueUnion.psz, PROP_MAXLEN);
    329                 char *cp;
    330                 for (cp = (char *)ValueUnion.psz; *cp != '=' && cp < ValueUnion.psz + cbKvp; cp++)
    331                     continue;
    332                 if (cp < ValueUnion.psz + cbKvp)
     330                size_t cchKvp = RTStrNLen(ValueUnion.psz, PROP_MAXLEN);
     331                char *pszEqual = (char *)memchr(ValueUnion.psz, '=', cchKvp);
     332                if (pszEqual)
    333333                {
    334                     *cp = '\0';
     334                    *pszEqual = '\0';       /* Warning! Modifies argument string. */
    335335                    pNewProp->next = NULL;
    336336                    pNewProp->key = (char *)ValueUnion.psz;
    337                     pNewProp->value = cp + 1;
     337                    pNewProp->value = pszEqual + 1;
    338338                }
    339                 if (pMediumProps) {
     339                if (pMediumProps)
     340                {
    340341                    PMEDIUMPROPERTY pProp;
    341342                    for (pProp = pMediumProps; pProp->next; pProp = pProp->next)
     
    345346                else
    346347                    pMediumProps = pNewProp;
     348                break;
    347349            }
     350
    348351            case 'F':   // --static ("fixed"/"flat")
    349352            {
     
    455458            else
    456459                strName.append(".vdi");
    457         } else if (cmd == CMD_DVD)
     460        }
     461        else if (cmd == CMD_DVD)
    458462            strName.append(".iso");
    459463        else if (cmd == CMD_FLOPPY)
     
    471475    else if (cmd == CMD_FLOPPY)
    472476        rc = createMedium(a, format, filename, DeviceType_Floppy,
    473                         AccessMode_ReadWrite, pMedium);
     477                          AccessMode_ReadWrite, pMedium);
    474478    else
    475479        rc = E_INVALIDARG; /* cannot happen but make gcc happy */
     
    486490                pProp = next;
    487491            }
    488         }
    489492
    490493        ComPtr<IProgress> pProgress;
     
    506509            rc = showProgress(pProgress);
    507510            CHECK_PROGRESS_ERROR(pProgress, ("Failed to create medium"));
     511        }
    508512    }
    509513
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