VirtualBox

Changeset 11889 in vbox for trunk/src/VBox/VMM/PDMLdr.cpp


Ignore:
Timestamp:
Aug 31, 2008 6:08:32 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
35741
Message:

VMM/SUP: Added SUPR3HardenedVerifyFile and use it to verify files we load.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PDMLdr.cpp

    r9148 r11889  
    271271     * Allocate the module list node and initialize it.
    272272     */
    273     PPDMMOD     pModule = (PPDMMOD)RTMemAllocZ(sizeof(*pModule) + cchFilename);
     273    const char *pszSuff = RTLdrGetSuff();
     274    size_t      cchSuff = strlen(pszSuff);
     275    PPDMMOD     pModule = (PPDMMOD)RTMemAllocZ(sizeof(*pModule) + cchFilename + cchSuff);
    274276    if (!pModule)
    275277        return VERR_NO_MEMORY;
     
    278280    memcpy(pModule->szName, pszName, cchName); /* memory is zero'ed, no need to copy terminator :-) */
    279281    memcpy(pModule->szFilename, pszFilename, cchFilename);
     282    memcpy(&pModule->szFilename[cchFilename], pszSuff, cchSuff);
    280283
    281284    /*
    282285     * Load the loader item.
    283286     */
    284     int rc = RTLdrLoad(pszFilename, &pModule->hLdrMod);
     287    int rc = SUPR3HardenedVerifyFile(pModule->szFilename, "pdmR3LoadR3U", NULL);
     288    if (RT_SUCCESS(rc))
     289        rc = RTLdrLoad(pModule->szFilename, &pModule->hLdrMod);
    285290    if (VBOX_SUCCESS(rc))
    286291    {
     
    448453     * Open the loader item.
    449454     */
    450     int rc = RTLdrOpen(pszFilename, &pModule->hLdrMod);
     455    int rc = SUPR3HardenedVerifyFile(pszFilename, "PDMR3LoadGC", NULL);
     456    if (RT_SUCCESS(rc))
     457        rc = RTLdrOpen(pszFilename, &pModule->hLdrMod);
    451458    if (VBOX_SUCCESS(rc))
    452459    {
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