Răsfoiți Sursa

Merge pull request #484 from turol/master

Fix read past end of buffer after call to TokenMatch
Alexander Gessler 10 ani în urmă
părinte
comite
3c56e978f7
1 a modificat fișierele cu 6 adăugiri și 1 ștergeri
  1. 6 1
      code/ParsingUtils.h

+ 6 - 1
code/ParsingUtils.h

@@ -201,7 +201,12 @@ template <class char_t>
 AI_FORCE_INLINE bool TokenMatch(char_t*& in, const char* token, unsigned int len)
 AI_FORCE_INLINE bool TokenMatch(char_t*& in, const char* token, unsigned int len)
 {
 {
 	if (!::strncmp(token,in,len) && IsSpaceOrNewLine(in[len])) {
 	if (!::strncmp(token,in,len) && IsSpaceOrNewLine(in[len])) {
-		in += len+1;
+		if (in[len] != '\0') {
+			in += len+1;
+		} else {
+			// If EOF after the token make sure we don't go past end of buffer
+			in += len;
+		}
 		return true;
 		return true;
 	}
 	}