瀏覽代碼

Merge pull request #4050 from assimp/kimkulling-fuzzer_issue_24553

Fix possible overrun
Kim Kulling 4 年之前
父節點
當前提交
afd0f65ceb
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      code/Common/RemoveComments.cpp

+ 5 - 2
code/Common/RemoveComments.cpp

@@ -59,13 +59,16 @@ void CommentRemover::RemoveLineComments(const char* szComment,
     ai_assert(nullptr != szBuffer);
     ai_assert(*szComment);
 
-    const size_t len = strlen(szComment);
+    size_t len = strlen(szComment);
+    const size_t lenBuffer = strlen(szBuffer);
+    if (len > lenBuffer) {
+        len = lenBuffer;
+    }
     while (*szBuffer)   {
 
         // skip over quotes
         if (*szBuffer == '\"' || *szBuffer == '\'')
             while (*szBuffer++ && *szBuffer != '\"' && *szBuffer != '\'');
-
         if (!strncmp(szBuffer,szComment,len)) {
             while (!IsLineEnd(*szBuffer))
                 *szBuffer++ = chReplacement;