fix ACPI table validation after encountering signatures containing ! and _ (invalid)

This was SVN commit r7742.
This commit is contained in:
janwas 2010-07-12 13:01:12 +00:00
parent 98770fa4cc
commit 9f66c86d64

View File

@ -78,12 +78,14 @@ static bool ValidateTable(const AcpiTable* table, const char* signature = 0)
if(memcmp(table->signature, signature, 4) != 0)
return false;
}
// no specific signature is called for; just make sure it's 4 letters
// no specific signature is called for, just validate the characters.
else
{
for(size_t i = 0; i < 4; i++)
{
if(!isalpha(table->signature[i]))
const char c = table->signature[i];
// "ASF!" and "____" have been encountered
if(!isalpha(c) && c != '_' && c != '!')
return false;
}
}
@ -276,7 +278,7 @@ static void AllocateAndCopyTables(const AcpiTable**& tables, size_t& numTables)
#if ENABLE_MAHAF
if(mahaf_IsPhysicalMappingDangerous())
return;
if(!mahaf_Init())
if(mahaf_Init() != INFO::OK)
return;
RSDP rsdp;