mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-11-27 12:15:19 +01:00
Caught few access to address 0
This commit is contained in:
parent
2a106ef602
commit
c6a59f85f9
@ -112,6 +112,7 @@ VOID* FindAcpiRsdPtr()
|
|||||||
// Search EBDA
|
// Search EBDA
|
||||||
//
|
//
|
||||||
Address = (*(UINT16 *)(UINTN)(EBDA_BASE_ADDRESS)) << 4;
|
Address = (*(UINT16 *)(UINTN)(EBDA_BASE_ADDRESS)) << 4;
|
||||||
|
if ( Address == 0 ) return 0; // Jief : if Address==0, the first access at *(UINT64 *)(Address + Index) is at address 0. It's supposed to crash.
|
||||||
for (Index = 0; Index < 0x400 ; Index += 16) {
|
for (Index = 0; Index < 0x400 ; Index += 16) {
|
||||||
if (*(UINT64 *)(Address + Index) == EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE) {
|
if (*(UINT64 *)(Address + Index) == EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE) {
|
||||||
return (VOID *)Address;
|
return (VOID *)Address;
|
||||||
|
@ -3940,17 +3940,17 @@ GetThemeTagSettings (
|
|||||||
GlobalConfig.SelectionColor = (UINTN)GetPropertyInteger (Dict2, GlobalConfig.SelectionColor);
|
GlobalConfig.SelectionColor = (UINTN)GetPropertyInteger (Dict2, GlobalConfig.SelectionColor);
|
||||||
|
|
||||||
Dict2 = GetProperty (Dict, "Small");
|
Dict2 = GetProperty (Dict, "Small");
|
||||||
if ((Dict2->type == kTagTypeString) && Dict2->string) {
|
if ( Dict2 && (Dict2->type == kTagTypeString) && Dict2->string) {
|
||||||
GlobalConfig.SelectionSmallFileName = PoolPrint (L"%a", Dict2->string);
|
GlobalConfig.SelectionSmallFileName = PoolPrint (L"%a", Dict2->string);
|
||||||
}
|
}
|
||||||
|
|
||||||
Dict2 = GetProperty (Dict, "Big");
|
Dict2 = GetProperty (Dict, "Big");
|
||||||
if ((Dict2->type == kTagTypeString) && Dict2->string) {
|
if ( Dict2 && (Dict2->type == kTagTypeString) && Dict2->string) {
|
||||||
GlobalConfig.SelectionBigFileName = PoolPrint (L"%a", Dict2->string);
|
GlobalConfig.SelectionBigFileName = PoolPrint (L"%a", Dict2->string);
|
||||||
}
|
}
|
||||||
|
|
||||||
Dict2 = GetProperty (Dict, "Indicator");
|
Dict2 = GetProperty (Dict, "Indicator");
|
||||||
if ((Dict2->type == kTagTypeString) && Dict2->string) {
|
if ( Dict2 && (Dict2->type == kTagTypeString) && Dict2->string) {
|
||||||
GlobalConfig.SelectionIndicatorName = PoolPrint (L"%a", Dict2->string);
|
GlobalConfig.SelectionIndicatorName = PoolPrint (L"%a", Dict2->string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,9 +40,9 @@ bool all_tests()
|
|||||||
DebugLog(2, "A test failed\n");
|
DebugLog(2, "A test failed\n");
|
||||||
PauseForKey(L"press");
|
PauseForKey(L"press");
|
||||||
}else{
|
}else{
|
||||||
#ifdef JIEF_DEBUG
|
|
||||||
DebugLog(2, "All tests are ok\n");
|
DebugLog(2, "All tests are ok\n");
|
||||||
// PauseForKey(L"press");
|
#ifdef JIEF_DEBUG
|
||||||
|
PauseForKey(L"press");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
return all_ok;
|
return all_ok;
|
||||||
|
@ -2169,6 +2169,7 @@ VOID REFIT_MENU_SCREEN::HidePointer()
|
|||||||
|
|
||||||
EFI_STATUS REFIT_MENU_SCREEN::MouseBirth()
|
EFI_STATUS REFIT_MENU_SCREEN::MouseBirth()
|
||||||
{
|
{
|
||||||
|
if ( !mPointer ) return RETURN_INVALID_PARAMETER;
|
||||||
return mPointer->MouseBirth();
|
return mPointer->MouseBirth();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user