VirtualBox

Changeset 51909 in vbox


Ignore:
Timestamp:
Jul 7, 2014 8:34:23 PM (10 years ago)
Author:
vboxsync
Message:

Testcase fix.

Location:
trunk/src/VBox/HostDrivers/Support
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/SUPLibInternal.h

    r51770 r51909  
    159159    kSupIFT_Script,
    160160    kSupIFT_Data,
     161    kSupIFT_TestExe,
     162    kSupIFT_TestDll,
    161163    kSupIFT_End
    162164} SUPINSTFILETYPE;
     
    174176    kSupID_AppPrivArchComp,
    175177    kSupID_AppPrivNoArch,
     178    kSupID_Testcase,
    176179    kSupID_End
    177180} SUPINSTDIR;
  • trunk/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp

    r51803 r51909  
    216216    {   kSupIFT_Dll,  kSupID_AppPrivArch,        true, "VBoxNetNAT" SUPLIB_DLL_SUFF },
    217217//#endif
     218#if defined(VBOX_WITH_HARDENING) && defined(RT_OS_WINDOWS)
     219# define HARDENED_TESTCASE_BIN_ENTRY(a_szName) \
     220        {   kSupIFT_TestExe, kSupID_AppBin, true, a_szName SUPLIB_EXE_SUFF }, \
     221        {   kSupIFT_TestDll, kSupID_AppBin, true, a_szName SUPLIB_DLL_SUFF }
     222    HARDENED_TESTCASE_BIN_ENTRY("tstMicro"),
     223    HARDENED_TESTCASE_BIN_ENTRY("tstPDMAsyncCompletion"),
     224    HARDENED_TESTCASE_BIN_ENTRY("tstPDMAsyncCompletionStress"),
     225    HARDENED_TESTCASE_BIN_ENTRY("tstVMM"),
     226    HARDENED_TESTCASE_BIN_ENTRY("tstVMREQ"),
     227# define HARDENED_TESTCASE_ENTRY(a_szName) \
     228        {   kSupIFT_TestExe, kSupID_Testcase, true, a_szName SUPLIB_EXE_SUFF }, \
     229        {   kSupIFT_TestDll, kSupID_Testcase, true, a_szName SUPLIB_DLL_SUFF }
     230    HARDENED_TESTCASE_ENTRY("tstCFGM"),
     231    HARDENED_TESTCASE_ENTRY("tstIntNet-1"),
     232    HARDENED_TESTCASE_ENTRY("tstMMHyperHeap"),
     233    HARDENED_TESTCASE_ENTRY("tstR0ThreadPreemptionDriver"),
     234    HARDENED_TESTCASE_ENTRY("tstRTR0MemUserKernelDriver"),
     235    HARDENED_TESTCASE_ENTRY("tstRTR0SemMutexDriver"),
     236    HARDENED_TESTCASE_ENTRY("tstRTR0TimerDriver"),
     237    HARDENED_TESTCASE_ENTRY("tstSSM"),
     238#endif
    218239};
    219240
     
    266287            rc = supR3HardenedPathAppPrivateNoArch(pszDst, cchDst);
    267288            break;
     289        case kSupID_Testcase:
     290            rc = supR3HardenedPathExecDir(pszDst, cchDst);
     291            if (RT_SUCCESS(rc))
     292            {
     293                size_t off = suplibHardenedStrLen(pszDst);
     294                if (cchDst - off >= sizeof("/testcase"))
     295                    suplibHardenedMemCopy(&pszDst[off], "/testcase", sizeof("/testcase"));
     296                else
     297                    rc = VERR_BUFFER_OVERFLOW;
     298            }
     299            break;
    268300        default:
    269301            return supR3HardenedError(VERR_INTERNAL_ERROR, fFatal,
     
    353385    if (RT_SUCCESS(rc))
    354386    {
    355 #if defined(RT_OS_WINDOWS)
     387#if defined(RT_OS_WINDOWS) /** @todo use CreateFileW */
    356388        HANDLE hDir = CreateFile(szPath,
    357389                                 GENERIC_READ,
     
    367399            g_aSupVerifiedDirs[enmDir].hDir = (intptr_t)hDir;
    368400            g_aSupVerifiedDirs[enmDir].fValidated = true;
     401        }
     402        else if (enmDir == kSupID_Testcase)
     403        {
     404            g_aSupVerifiedDirs[enmDir].fValidated = true;
     405            rc = VINF_SUCCESS; /* Optional directory, ignore if missing. */
    369406        }
    370407        else
     
    420457            }
    421458        }
     459        else if (enmDir == kSupID_Testcase)
     460        {
     461            g_aSupVerifiedDirs[enmDir].fValidated = true;
     462            rc = VINF_SUCCESS; /* Optional directory, ignore if missing. */
     463        }
    422464        else
    423465        {
     
    522564                {
    523565                    int err = GetLastError();
    524                     if (!pFile->fOptional || err != ERROR_FILE_NOT_FOUND)
     566                    if (   !pFile->fOptional
     567                        || (    err != ERROR_FILE_NOT_FOUND
     568                            &&  (err != ERROR_PATH_NOT_FOUND || pFile->enmDir != kSupID_Testcase) ) )
    525569                        rc = supR3HardenedError(VERR_PATH_NOT_FOUND, fFatal,
    526570                                                "supR3HardenedVerifyFileInternal: Failed to open '%s': err=%d\n", szPath, err);
     
    709753        if (!suplibHardenedStrNCmp(pszProgName, g_aSupInstallFiles[iFile].pszFile, cchProgName))
    710754        {
    711             if (    g_aSupInstallFiles[iFile].enmType == kSupIFT_Dll
     755            if (    (   g_aSupInstallFiles[iFile].enmType == kSupIFT_Dll
     756                     || g_aSupInstallFiles[iFile].enmType == kSupIFT_TestDll)
    712757                &&  !suplibHardenedStrCmp(&g_aSupInstallFiles[iFile].pszFile[cchProgName], SUPLIB_DLL_SUFF))
    713758            {
     
    718763                fDll = true;
    719764            }
    720             else if (   g_aSupInstallFiles[iFile].enmType == kSupIFT_Exe
     765            else if (   (   g_aSupInstallFiles[iFile].enmType == kSupIFT_Exe
     766                         || g_aSupInstallFiles[iFile].enmType == kSupIFT_TestExe)
    721767                     && !suplibHardenedStrCmp(&g_aSupInstallFiles[iFile].pszFile[cchProgName], SUPLIB_EXE_SUFF))
    722768            {
     
    15281574     */
    15291575    HANDLE hVerify;
    1530     if (hNativeFile == RTHCUINTPTR_MAX)
     1576    if (hNativeFile == RTHCUINTPTR_MAX) /** @todo Need to use WCHAR on windows! */
    15311577        hVerify = CreateFile(pszFilename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    15321578    else if (!DuplicateHandle(GetCurrentProcess(), (HANDLE)hNativeFile, GetCurrentProcess(), &hVerify,
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