VirtualBox

Changeset 48844 in vbox for trunk/src/VBox/Runtime/common


Ignore:
Timestamp:
Oct 3, 2013 3:31:32 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
89513
Message:

build fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/zip/xarvfs.cpp

    r48843 r48844  
    143143    RTFOFF                  offData;
    144144    /** The size of the archived data. */
    145     uint64_t                cbDataArchived;
     145    RTFOFF                  cbDataArchived;
    146146    /** The size of the extracted data. */
    147     uint64_t                cbDataExtracted;
     147    RTFOFF                  cbDataExtracted;
    148148    /** The encoding of the archived ata. */
    149149    RTZIPXARENCODING        enmEncoding;
     
    395395 */
    396396static int rtZipXarGetOffsetSizeLengthFromElem(xml::ElementNode const *pElement,
    397                                                PRTFOFF poff, uint64_t *pcbSize, uint64_t *pcbLength)
     397                                               PRTFOFF poff, PRTFOFF pcbSize, PRTFOFF pcbLength)
    398398{
    399399    /*
     
    425425        return VERR_XAR_BAD_SIZE_ELEMENT;
    426426
    427     rc = RTStrToUInt64Full(pszValue, 0, pcbSize);
     427    rc = RTStrToInt64Full(pszValue, 0, pcbSize);
    428428    if (   RT_FAILURE(rc)
    429429        || rc == VWRN_NUMBER_TOO_BIG
    430         || *pcbSize >= UINT64_MAX / 2 /* prevent overflow casting to RTFOFF_MAX. */)
     430        || *pcbSize >= RTFOFF_MAX - _1M
     431        || *pcbSize < 0)
    431432        return VERR_XAR_BAD_SIZE_ELEMENT;
    432433    AssertCompile(RTFOFF_MAX == UINT64_MAX / 2);
     
    446447            return VERR_XAR_BAD_LENGTH_ELEMENT;
    447448
    448         rc = RTStrToUInt64Full(pszValue, 0, pcbLength);
     449        rc = RTStrToInt64Full(pszValue, 0, pcbLength);
    449450        if (   RT_FAILURE(rc)
    450451            || rc == VWRN_NUMBER_TOO_BIG
    451             || *pcbLength >= UINT64_MAX / 2 /* prevent overflow casting to RTFOFF_MAX. */)
     452            || *pcbLength >= RTFOFF_MAX - _1M
     453            || *pcbLength < 0)
    452454            return VERR_XAR_BAD_LENGTH_ELEMENT;
    453455        AssertCompile(RTFOFF_MAX == UINT64_MAX / 2);
     
    840842    if (off == -1)
    841843        off = pThis->offCurPos;
    842     if (off < 0 || off > (RTFOFF)pThis->DataAttr.cbDataArchived)
     844    if (off < 0 || off > pThis->DataAttr.cbDataArchived)
    843845        return VERR_EOF;
    844846    if (pThis->fEndOfStream)
    845847    {
    846         if (off >= (RTFOFF)pThis->DataAttr.cbDataArchived)
     848        if (off >= pThis->DataAttr.cbDataArchived)
    847849            return pcbRead ? VINF_EOF : VERR_EOF;
    848850        if (!pThis->fSeekable)
     
    852854
    853855    size_t cbToRead = pSgBuf->paSegs[0].cbSeg;
    854     uint64_t cbLeft = (uint64_t)(pThis->DataAttr.cbDataArchived - off);
     856    uint64_t cbLeft = pThis->DataAttr.cbDataArchived - off;
    855857    if (cbToRead > cbLeft)
    856858    {
     
    897899     * Check for end of stream, also check the hash.
    898900     */
    899     if (pThis->offCurPos >= (RTFOFF)pThis->DataAttr.cbDataArchived)
     901    if (pThis->offCurPos >= pThis->DataAttr.cbDataArchived)
    900902    {
    901903        Assert(pThis->offCurPos == pThis->DataAttr.cbDataArchived);
     
    904906        /* Check hash. */
    905907        if (   pThis->uHashState == RTZIPXAR_HASH_PENDING
    906             && pThis->cbDigested == (RTFOFF)pThis->DataAttr.cbDataArchived)
     908            && pThis->cbDigested == pThis->DataAttr.cbDataArchived)
    907909        {
    908910            RTZIPXARHASHDIGEST Digest;
     
    10821084    if (offSeek < 0)
    10831085        offSeek = 0;
    1084     else if (offSeek > (RTFOFF)pThis->Ios.DataAttr.cbDataArchived)
     1086    else if (offSeek > pThis->Ios.DataAttr.cbDataArchived)
    10851087        offSeek = pThis->Ios.DataAttr.cbDataArchived;
    10861088
    10871089    /* Apply and return. */
    1088     pThis->Ios.fEndOfStream = (offSeek >= (RTFOFF)pThis->Ios.DataAttr.cbDataArchived);
     1090    pThis->Ios.fEndOfStream = (offSeek >= pThis->Ios.DataAttr.cbDataArchived);
    10891091    pThis->Ios.offCurPos    = offSeek;
    10901092    if (poffActual)
     
    11911193     * Enforce the cbDataExtracted limit.
    11921194     */
    1193     if (pThis->offCurPos > (RTFOFF)pThis->pIosRaw->DataAttr.cbDataExtracted)
     1195    if (pThis->offCurPos > pThis->pIosRaw->DataAttr.cbDataExtracted)
    11941196        return VERR_XAR_EXTRACTED_SIZE_EXCEEDED;
    11951197
     
    12131215    if (rc == VINF_EOF)
    12141216    {
    1215         if (pThis->offCurPos == (RTFOFF)pThis->pIosRaw->DataAttr.cbDataExtracted)
     1217        if (pThis->offCurPos == pThis->pIosRaw->DataAttr.cbDataExtracted)
    12161218        {
    12171219            if (pThis->uHashState == RTZIPXAR_HASH_PENDING)
     
    12371239        if (RT_SUCCESS(rc))
    12381240        {
    1239             if (   pThis->pIosRaw->offCurPos < (RTFOFF)pThis->pIosRaw->DataAttr.cbDataArchived
     1241            if (   pThis->pIosRaw->offCurPos < pThis->pIosRaw->DataAttr.cbDataArchived
    12401242                || pThis->pIosRaw->uHashState == RTZIPXAR_HASH_PENDING)
    12411243                rc = VERR_XAR_UNUSED_ARCHIVED_DATA;
     
    18121814        {
    18131815            RTFOFF   offChecksum;
    1814             uint64_t cbChecksum;
     1816            RTFOFF  cbChecksum;
    18151817            rc = rtZipXarGetOffsetSizeLengthFromElem(pChecksumElem, &offChecksum, &cbChecksum, NULL);
    18161818            if (RT_FAILURE(rc))
    18171819                return rc;
    1818             if (cbChecksum != pThis->cbHashDigest)
     1820            if (cbChecksum != (RTFOFF)pThis->cbHashDigest)
    18191821                return VERR_XAR_BAD_DIGEST_LENGTH;
    18201822            if (offChecksum != 0 && pThis->hVfsFile == NIL_RTVFSFILE)
     
    18221824
    18231825            RTZIPXARHASHDIGEST StoredDigest;
    1824             rc = RTVfsIoStrmReadAt(pThis->hVfsIos, pThis->offZero + offChecksum, &StoredDigest, cbChecksum,
     1826            rc = RTVfsIoStrmReadAt(pThis->hVfsIos, pThis->offZero + offChecksum, &StoredDigest, pThis->cbHashDigest,
    18251827                                   true /*fBlocking*/, NULL /*pcbRead*/);
    18261828            if (RT_FAILURE(rc))
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