VirtualBox

Changeset 90774 in vbox


Ignore:
Timestamp:
Aug 23, 2021 5:59:57 AM (3 years ago)
Author:
vboxsync
Message:

Add guards to Load Exec function and replicated fix from r145659 in virtio 1.0. See BugRef(8651) Comment #109

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DevVirtioNet_1_0.cpp

    r87773 r90774  
    131131#endif
    132132
     133#define VIRTIONET_MAX_WORKERS           VIRTIONET_MAX_QPAIRS
    133134#define VIRTIONET_MAX_VIRTQS            (VIRTIONET_MAX_QPAIRS * 2 + 1)
    134135#define VIRTIONET_MAX_FRAME_SIZE        65535 + 18  /**< Max IP pkt size + Eth. header w/VLAN tag  */
     
    480481
    481482    /** The device instance.
    482      * @note This is _only_ for use when dealing with interface callbacks. */
     483     * @note This is _only_ for use whxen dealing with interface callbacks. */
    483484    PPDMDEVINSR3                    pDevIns;
    484485
     
    10751076
    10761077    pHlp->pfnSSMGetU16(     pSSM, &pThis->cVirtVirtqs);
     1078    AssertReturn(pThis->cVirtVirtqs <= (VIRTIONET_MAX_QPAIRS * 2), VERR_OUT_OF_RANGE);
     1079
    10771080    pHlp->pfnSSMGetU16(     pSSM, &pThis->cWorkers);
     1081    AssertReturn(pThis->cWorkers <= VIRTIONET_MAX_WORKERS, VERR_OUT_OF_RANGE);
     1082
    10781083
    10791084    for (int uVirtqNbr = 0; uVirtqNbr < pThis->cVirtVirtqs; uVirtqNbr++)
     
    11101115
    11111116        pHlp->pfnSSMGetU32(     pSSM, &pThis->cMulticastFilterMacs);
     1117        AssertReturn(pThis->cMulticastFilterMacs <= VIRTIONET_MAC_FILTER_LEN, VERR_OUT_OF_RANGE);
    11121118        pHlp->pfnSSMGetMem(     pSSM, pThis->aMacMulticastFilter, pThis->cMulticastFilterMacs * sizeof(RTMAC));
    11131119
     
    11171123
    11181124        pHlp->pfnSSMGetU32(     pSSM, &pThis->cUnicastFilterMacs);
     1125        AssertReturn(pThis->cWorkers <= VIRTIONET_MAC_FILTER_LEN, VERR_OUT_OF_RANGE);
    11191126        pHlp->pfnSSMGetMem(     pSSM, pThis->aMacUnicastFilter, pThis->cUnicastFilterMacs * sizeof(RTMAC));
    11201127
     
    22802287        return;
    22812288
     2289
    22822290    if (!pThis->fVirtioReady)
    22832291    {
     
    22922300        return;
    22932301    }
     2302
    22942303
    22952304    PPDMINETWORKUP pDrv = pThisCC->pDrv;
     
    27712780
    27722781            Assert(pWorker->uIdx == uVirtqNbr);
     2782            RT_NOREF(pWorker);
     2783
    27732784            Assert(pVirtq->uIdx == pWorker->uIdx);
    27742785
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