Browse Source

Fix out-of-bounds read in invalid compressed X file

Turo Lamminen 10 years ago
parent
commit
f971b66c47
1 changed files with 4 additions and 0 deletions
  1. 4 0
      code/XFileParser.cpp

+ 4 - 0
code/XFileParser.cpp

@@ -214,6 +214,10 @@ XFileParser::XFileParser( const std::vector<char>& pBuffer)
 			AI_SWAP2(ofs); 
 			P += 4;
 
+			if (P + ofs > End + 2) {
+				throw DeadlyImportError("X: Unexpected EOF in compressed chunk");
+			}
+
 			// push data to the stream
 			stream.next_in   = (Bytef*)P;
 			stream.avail_in  = ofs;