VirtualBox

Changeset 49846 in vbox for trunk/src


Ignore:
Timestamp:
Dec 9, 2013 3:41:02 PM (11 years ago)
Author:
vboxsync
Message:

HGCM: check size.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp

    r49454 r49846  
    686686                    {
    687687                        /* Only pointers with some actual data are counted. */
     688                        if (pGuestParm->u.Pointer.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize)
     689                        {
     690                            rc = VERR_INVALID_PARAMETER;
     691                            break;
     692                        }
     693
    688694                        cbCmdSize += pGuestParm->u.Pointer.size;
    689695
     
    699705                case VMMDevHGCMParmType_PageList:
    700706                {
     707                    if (pGuestParm->u.PageList.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize)
     708                    {
     709                        rc = VERR_INVALID_PARAMETER;
     710                        break;
     711                    }
     712
    701713                    cbCmdSize += pGuestParm->u.PageList.size;
    702714                    Log(("vmmdevHGCMCall: pagelist size = %d\n", pGuestParm->u.PageList.size));
     
    738750                    {
    739751                        /* Only pointers with some actual data are counted. */
     752                        if (pGuestParm->u.Pointer.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize)
     753                        {
     754                            rc = VERR_INVALID_PARAMETER;
     755                            break;
     756                        }
     757
    740758                        cbCmdSize += pGuestParm->u.Pointer.size;
    741759
     
    751769                case VMMDevHGCMParmType_PageList:
    752770                {
     771                    if (pGuestParm->u.PageList.size > VMMDEV_MAX_HGCM_DATA_SIZE - cbCmdSize)
     772                    {
     773                        rc = VERR_INVALID_PARAMETER;
     774                        break;
     775                    }
     776
    753777                    cbCmdSize += pGuestParm->u.PageList.size;
    754778                    Log(("vmmdevHGCMCall: pagelist size = %d\n", pGuestParm->u.PageList.size));
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