From 59658b9740abf3b7cab5a15036b7423053e867f3 Mon Sep 17 00:00:00 2001 From: yutaka Date: Thu, 17 Apr 2008 05:22:47 +0000 Subject: [PATCH] =?UTF-8?q?FAT=E3=81=AE=E6=94=B9=E3=81=96=E3=82=93?= =?UTF-8?q?=E3=81=A7=E8=B2=A0=E3=81=AE=E3=82=B5=E3=82=A4=E3=82=BA=E3=81=8C?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E3=81=95=E3=82=8C=E3=82=8B=E3=81=93=E3=81=A8?= =?UTF-8?q?=E3=81=AB=E5=AF=BE=E5=BF=9C=E3=80=81=20DHT=5FPrepareDatabase?= =?UTF-8?q?=E3=81=A7=E4=BB=A3=E7=94=A8=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=9F=E3=81=AE=E3=81=A7?= =?UTF-8?q?DHT=5FCheckDatabase=E3=82=92=E9=9D=9E=E5=85=AC=E9=96=8B?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1169 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/libraries_sysmenu/dht/common/src/dht.c | 8 ++++++-- include/sysmenu/dht/dht.h | 11 ----------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/build/libraries_sysmenu/dht/common/src/dht.c b/build/libraries_sysmenu/dht/common/src/dht.c index 4d2e3848..97aff406 100644 --- a/build/libraries_sysmenu/dht/common/src/dht.c +++ b/build/libraries_sysmenu/dht/common/src/dht.c @@ -114,7 +114,7 @@ u32 DHT_GetDatabaseLength(const DHTFile* pDHT) } return sizeof(DHTHeader) + pDHT->header.nums * sizeof(DHTDatabase); } -BOOL DHT_CheckDatabase(const DHTFile* pDHT) +static BOOL DHT_CheckDatabase(const DHTFile* pDHT) { SVCSignHeapContext pool; u8 heap[4*1024]; @@ -143,7 +143,6 @@ BOOL DHT_PrepareDatabase(DHTFile* pDHT, FSFile* fp) { s32 result; s32 length; - u8 title[4] = { 'H','N','G','A' }; PROFILE_INIT(); if ( fp ) @@ -407,6 +406,11 @@ BOOL DHT_CheckHashPhase2(const u8* hash, const ROM_Header_Short* pROMHeader, DHT { 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) ) { OS_TPrintf("Cannot calc HMAC-SHA1 for %d of overlay.\n", i); diff --git a/include/sysmenu/dht/dht.h b/include/sysmenu/dht/dht.h index 1cb2457b..7fec7896 100644 --- a/include/sysmenu/dht/dht.h +++ b/include/sysmenu/dht/dht.h @@ -48,17 +48,6 @@ typedef BOOL (*DHTReadFunc)(void* dest, s32 offset, s32 length, void* arg); *---------------------------------------------------------------------------*/ u32 DHT_GetDatabaseLength(const DHTFile* pDHT); -/*---------------------------------------------------------------------------* - Name: DHT_PrepareDatabase - - Description: 読み込み済みの全データベースの署名を検証する - - Arguments: pDHT データベースの格納先 - - Returns: 成功すればTRUE - *---------------------------------------------------------------------------*/ -BOOL DHT_CheckDatabase(const DHTFile* pDHT); - /*---------------------------------------------------------------------------* Name: DHT_PrepareDatabase