diff --git a/Changelog.md b/Changelog.md index 29643d2539245fa7199f78d504fc3abe5e584f14..806ae83e2921a805addc0dcf59cb1a560b4212fa 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,7 @@ OpenCore Changelog #### v0.6.3 - Added support for xml comments in plist files - Updated underlying EDK II package to edk2-stable202008 +- Provide fallbacks for NULL memory SMBIOS strings #### v0.6.2 - Updated builtin firmware versions for SMBIOS and the rest diff --git a/Library/OcSmbiosLib/SmbiosPatch.c b/Library/OcSmbiosLib/SmbiosPatch.c index ad88ac6808bfb0fea9e2417a7f6610faf87885f6..6a7ce1e07d1321360f3865f0c2b6077d0f4e4d25 100755 --- a/Library/OcSmbiosLib/SmbiosPatch.c +++ b/Library/OcSmbiosLib/SmbiosPatch.c @@ -696,10 +696,14 @@ PatchMemoryDevice ( Table->CurrentPtr.Standard.Type17->MemoryErrorInformationHandle = 0xFFFF; } - SMBIOS_OVERRIDE_S (Table, Standard.Type17->Manufacturer, Original, NULL, &StringIndex, NULL); - SMBIOS_OVERRIDE_S (Table, Standard.Type17->SerialNumber, Original, NULL, &StringIndex, NULL); - SMBIOS_OVERRIDE_S (Table, Standard.Type17->AssetTag, Original, NULL, &StringIndex, NULL); - SMBIOS_OVERRIDE_S (Table, Standard.Type17->PartNumber, Original, NULL, &StringIndex, NULL); + // + // Some machines may have NULL values for these fields, which will cause SPMemoryReporter + // crashes or ??? to be displayed in About This Mac. Fallback to "Unknown" for such fields. + // + SMBIOS_OVERRIDE_S (Table, Standard.Type17->Manufacturer, Original, NULL, &StringIndex, "Unknown"); + SMBIOS_OVERRIDE_S (Table, Standard.Type17->SerialNumber, Original, NULL, &StringIndex, "Unknown"); + SMBIOS_OVERRIDE_S (Table, Standard.Type17->AssetTag, Original, NULL, &StringIndex, "Unknown"); + SMBIOS_OVERRIDE_S (Table, Standard.Type17->PartNumber, Original, NULL, &StringIndex, "Unknown"); SMBIOS_OVERRIDE_V (Table, Standard.Type17->Attributes, Original, NULL, NULL); SMBIOS_OVERRIDE_V (Table, Standard.Type17->ExtendedSize, Original, NULL, NULL);