Changeset 75053 in vbox for trunk/src/VBox/HostDrivers/Support/darwin
- Timestamp:
- Oct 24, 2018 7:08:56 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 126100
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp
r75052 r75053 101 101 static kern_return_t VBoxDrvDarwinStart(struct kmod_info *pKModInfo, void *pvData); 102 102 static kern_return_t VBoxDrvDarwinStop(struct kmod_info *pKModInfo, void *pvData); 103 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION103 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 104 104 static int supdrvDarwinInitCertStores(PSUPDRVDEVEXT pDevExt); 105 105 static void supdrvDarwinDestroyCertStores(PSUPDRVDEVEXT pDevExt); … … 286 286 if (RT_SUCCESS(rc)) 287 287 { 288 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION288 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 289 289 supdrvDarwinInitCertStores(&g_DevExt); 290 290 #endif … … 353 353 LogRel(("VBoxDrv: cdevsw_add failed (%d)\n", g_iMajorDeviceNo)); 354 354 } 355 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION355 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 356 356 supdrvDarwinDestroyCertStores(&g_DevExt); 357 357 #endif … … 439 439 440 440 441 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION441 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 442 442 443 443 /** … … 495 495 } 496 496 497 #endif /* SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION */497 #endif /* VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION */ 498 498 499 499 /** … … 534 534 g_Spinlock = NIL_RTSPINLOCK; 535 535 536 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION536 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 537 537 supdrvDarwinDestroyCertStores(&g_DevExt); 538 538 #endif … … 1223 1223 1224 1224 1225 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION1225 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 1226 1226 1227 1227 /** … … 1273 1273 { 1274 1274 RT_NOREF(pvUser); //PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)pvUser; 1275 # ifdef DEBUG_bird 1276 printf("supdrvDarwinLdrOpenVerifyCertificatCallback: pCert=%p hCertPaths=%p\n", pCert, hCertPaths); 1277 # endif 1275 1278 1276 1279 # if 0 … … 1361 1364 } 1362 1365 1363 #endif /* SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION */1366 #endif /* VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION */ 1364 1367 1365 1368 int VBOXCALL supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename) 1366 1369 { 1367 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION1370 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 1368 1371 /* 1369 1372 * Initialize our members. … … 1450 1453 } 1451 1454 return rc; 1452 #else /* ! SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION */1455 #else /* !VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION */ 1453 1456 NOREF(pDevExt); NOREF(pImage); NOREF(pszFilename); 1454 1457 return VERR_NOT_SUPPORTED; 1455 #endif /* ! SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION */1456 } 1457 1458 1459 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION1458 #endif /* !VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION */ 1459 } 1460 1461 1462 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 1460 1463 /** 1461 1464 * @callback_method_impl{FNRTLDRENUMSYMS, … … 1476 1479 const uint8_t *pbImageBits, const char *pszSymbol) 1477 1480 { 1478 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION1481 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 1479 1482 AssertReturn(pImage->hLdrMod != NIL_RTLDRMOD, VERR_INVALID_STATE); 1480 1483 … … 1485 1488 if (RT_C_IS_UPPER(*pszSymbol)) 1486 1489 { 1487 void *pvFound = NULL;1488 rc = RTLdrGetSymbol (pImage->hLdrMod, pszSymbol, &pvFound);1490 RTLDRADDR uValueFound; 1491 rc = RTLdrGetSymbolEx(pImage->hLdrMod, pImage->pvImage, (uintptr_t)pImage->pvImage, UINT32_MAX, pszSymbol, &uValueFound); 1489 1492 if (RT_SUCCESS(rc)) 1490 1493 { 1491 if ( pvFound ==pv)1494 if (uValueFound == (uintptr_t)pv) 1492 1495 rc = VINF_SUCCESS; 1493 1496 else 1494 1497 { 1495 SUPR0Printf("SUPDrv: Different exports found for %s in %s: % p, expected %p\n",1496 pszSymbol, pImage->szName, pvFound, pv);1498 SUPR0Printf("SUPDrv: Different exports found for %s in %s: %RTptr, expected %p\n", 1499 pszSymbol, pImage->szName, (RTUINTPTR)uValueFound, pv); 1497 1500 rc = VERR_LDR_BAD_FIXUP; 1498 1501 } … … 1529 1532 int VBOXCALL supdrvOSLdrLoad(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const uint8_t *pbImageBits, PSUPLDRLOAD pReq) 1530 1533 { 1531 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION1534 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 1532 1535 /* State paranoia. */ 1533 1536 AssertReturn(pImage->hLdrMod != NIL_RTLDRMOD, VERR_INVALID_STATE); … … 1554 1557 void VBOXCALL supdrvOSLdrUnload(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage) 1555 1558 { 1556 #ifdef SUPDRV_WITH_DARWIN_IMAGE_VERIFICATION1559 #ifdef VBOX_WITH_DARWIN_R0_DARWIN_IMAGE_VERIFICATION 1557 1560 if (pImage->hLdrMod != NIL_RTLDRMOD) 1558 1561 {
Note:
See TracChangeset
for help on using the changeset viewer.