PlyLoader: Fix operator precedence issue in header check
authorTuro Lamminen <turotl@gmail.com>
Mon, 18 Sep 2017 12:13:19 +0000 (15:13 +0300)
committerTuro Lamminen <turotl@gmail.com>
Mon, 18 Sep 2017 12:16:21 +0000 (15:16 +0300)
The previous version might read past end of buffer

code/PlyLoader.cpp

index d348fe1..c6e862b 100644 (file)
@@ -170,9 +170,10 @@ void PLYImporter::InternReadFile(const std::string& pFile,
   std::vector<char> headerCheck;
   streamedBuffer.getNextLine(headerCheck);
 
-  if ((headerCheck.size() >= 3) && (headerCheck[0] != 'P' && headerCheck[0] != 'p') ||
-    (headerCheck[1] != 'L' && headerCheck[1] != 'l') ||
-    (headerCheck[2] != 'Y' && headerCheck[2] != 'y'))
+  if ((headerCheck.size() < 3) ||
+      (headerCheck[0] != 'P' && headerCheck[0] != 'p') ||
+      (headerCheck[1] != 'L' && headerCheck[1] != 'l') ||
+      (headerCheck[2] != 'Y' && headerCheck[2] != 'y') )
   {
     streamedBuffer.close();
     throw DeadlyImportError("Invalid .ply file: Magic number \'ply\' is no there");