Diff

Not logged in

Differences From Artifact [4a1f472039c28674]:

To Artifact [867fcb36cfe598b8]:


10 10 11 11 bool CLzhTool::Extract( const char* aname, const char* dll, kiPath& dll_rel_path ) 12 12 { 13 13 // 先頭の方を読み込み 14 14 FILE* fp = fopen( aname,"rb" ); 15 15 if( !fp ) 16 16 return false; 17 - unsigned char* buff = new unsigned char[65536]; 18 - DWORD siz = fread( buff, 1, 65536, fp ); 17 + const int maxHeaderOffset = 1<<20; // 1MB 18 + unsigned char* buff = new unsigned char[maxHeaderOffset]; 19 + DWORD siz = fread( buff, 1, maxHeaderOffset, fp ); 19 20 fclose( fp ); 20 21 // ヘッダを探す 21 22 int ps = FindHeader( aname,buff,siz ); 22 23 // 書庫を開く 23 24 if( ps==-1 || !(lzh = fopen( aname,"rb" )) ) 24 25 { 25 26 delete [] buff;