FATの改ざんで負のサイズが指定されることに対応、

DHT_PrepareDatabaseで代用できるようになったのでDHT_CheckDatabaseを非公開化

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1169 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yutaka 2008-04-17 05:22:47 +00:00
parent d3f78a78c3
commit 59658b9740
2 changed files with 6 additions and 13 deletions

View File

@ -114,7 +114,7 @@ u32 DHT_GetDatabaseLength(const DHTFile* pDHT)
} }
return sizeof(DHTHeader) + pDHT->header.nums * sizeof(DHTDatabase); return sizeof(DHTHeader) + pDHT->header.nums * sizeof(DHTDatabase);
} }
BOOL DHT_CheckDatabase(const DHTFile* pDHT) static BOOL DHT_CheckDatabase(const DHTFile* pDHT)
{ {
SVCSignHeapContext pool; SVCSignHeapContext pool;
u8 heap[4*1024]; u8 heap[4*1024];
@ -143,7 +143,6 @@ BOOL DHT_PrepareDatabase(DHTFile* pDHT, FSFile* fp)
{ {
s32 result; s32 result;
s32 length; s32 length;
u8 title[4] = { 'H','N','G','A' };
PROFILE_INIT(); PROFILE_INIT();
if ( fp ) if ( fp )
@ -407,6 +406,11 @@ BOOL DHT_CheckHashPhase2(const u8* hash, const ROM_Header_Short* pROMHeader, DHT
{ {
length = max_sectors; length = max_sectors;
} }
if ( length < 0 || offset < sizeof(ROM_Header) )
{
OS_TPrintf("Broaken FAT for %d of overlay.\n", i);
return FALSE;
}
if ( !ImageHMACSHA1Update(&ctx, offset, length * 512) ) if ( !ImageHMACSHA1Update(&ctx, offset, length * 512) )
{ {
OS_TPrintf("Cannot calc HMAC-SHA1 for %d of overlay.\n", i); OS_TPrintf("Cannot calc HMAC-SHA1 for %d of overlay.\n", i);

View File

@ -48,17 +48,6 @@ typedef BOOL (*DHTReadFunc)(void* dest, s32 offset, s32 length, void* arg);
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
u32 DHT_GetDatabaseLength(const DHTFile* pDHT); u32 DHT_GetDatabaseLength(const DHTFile* pDHT);
/*---------------------------------------------------------------------------*
Name: DHT_PrepareDatabase
Description:
Arguments: pDHT
Returns: TRUE
*---------------------------------------------------------------------------*/
BOOL DHT_CheckDatabase(const DHTFile* pDHT);
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: DHT_PrepareDatabase Name: DHT_PrepareDatabase