@@ -111,7 +111,16 @@ bool Replay::OpenReplay(const wchar_t* name) {
111111 return false ;
112112
113113 Reset ();
114- if (std::fread (&pheader, sizeof pheader, 1 , rfp) < 1 ) {
114+ bool correct_header = true ;
115+ if (std::fread (&pheader, sizeof pheader, 1 , rfp) < 1 )
116+ correct_header = false ;
117+ else if (pheader.id != 0x31707279 )
118+ correct_header = false ;
119+ else if (pheader.version < 0x12d0u )
120+ correct_header = false ;
121+ else if (pheader.version >= 0x1353u && !(pheader.flag & REPLAY_UNIFORM ))
122+ correct_header = false ;
123+ if (!correct_header) {
115124 std::fclose (rfp);
116125 return false ;
117126 }
@@ -142,17 +151,6 @@ bool Replay::OpenReplay(const wchar_t* name) {
142151 data_position = 0 ;
143152 return true ;
144153}
145- bool Replay::CheckReplay (const wchar_t * name) {
146- wchar_t fname[256 ];
147- myswprintf (fname, L" ./replay/%ls" , name);
148- FILE * rfp = mywfopen (fname, " rb" );
149- if (!rfp)
150- return false ;
151- ReplayHeader rheader;
152- size_t count = std::fread (&rheader, sizeof rheader, 1 , rfp);
153- std::fclose (rfp);
154- return count == 1 && rheader.id == 0x31707279 && rheader.version >= 0x12d0u && (rheader.version < 0x1353u || (rheader.flag & REPLAY_UNIFORM ));
155- }
156154bool Replay::DeleteReplay (const wchar_t * name) {
157155 wchar_t fname[256 ];
158156 myswprintf (fname, L" ./replay/%ls" , name);
0 commit comments