浏览代码

Fix heap buffer overflow in PLY parser (#5956)

Co-authored-by: Kim Kulling <[email protected]>
tyler92 7 月之前
父节点
当前提交
f13197921b
共有 1 个文件被更改,包括 3 次插入5 次删除
  1. 3 5
      include/assimp/IOStreamBuffer.h

+ 3 - 5
include/assimp/IOStreamBuffer.h

@@ -292,15 +292,13 @@ AI_FORCE_INLINE bool IOStreamBuffer<T>::getNextLine(std::vector<T> &buffer) {
 
 
     if (IsLineEnd(m_cache[m_cachePos])) {
     if (IsLineEnd(m_cache[m_cachePos])) {
         // skip line end
         // skip line end
-        while (m_cache[m_cachePos] != '\n') {
+        do {
             ++m_cachePos;
             ++m_cachePos;
-        }
-        ++m_cachePos;
-        if (isEndOfCache(m_cachePos, m_cacheSize)) {
-            if (!readNextBlock()) {
+            if (isEndOfCache(m_cachePos, m_cacheSize) && !readNextBlock()) {
                 return false;
                 return false;
             }
             }
         }
         }
+        while (m_cache[m_cachePos] != '\n');
     }
     }
 
 
     size_t i(0);
     size_t i(0);