VirtualBox

Changeset 2279 in vbox


Ignore:
Timestamp:
Apr 20, 2007 2:31:17 PM (18 years ago)
Author:
vboxsync
Message:

Don't recursively call PGMVerifyAccess as we might run out of stack.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAll.cpp

    r2270 r2279  
    504504        &&  (   PAGE_ADDRESS(Addr) != PAGE_ADDRESS(Addr + cbSize - 1)
    505505             || Addr + cbSize < Addr))
    506         return PGMVerifyAccess(pVM, Addr + PAGE_SIZE, cbSize > PAGE_SIZE ? cbSize - PAGE_SIZE : 1, fAccess);
     506    {
     507        Addr += PAGE_SIZE;
     508        if (cbSize > PAGE_SIZE)
     509            cbSize =- PAGE_SIZE;
     510        else
     511            cbSize = 0;
     512
     513        /* Don't recursively call PGMVerifyAccess as we might run out of stack. */
     514        for(;;)
     515        {
     516            rc = PGMVerifyAccess(pVM, Addr, 1, fAccess);
     517            if (rc != VINF_SUCCESS)
     518                break;
     519
     520            Addr += PAGE_SIZE;
     521            if (cbSize > PAGE_SIZE)
     522                cbSize =- PAGE_SIZE;
     523            else
     524                break;
     525        }
     526    }
    507527    return rc;
    508528}
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