Browse Source

Avoid read past buffer end for empty source when checking for utf-8 signature

Pierre Muller 2 years ago
parent
commit
aaf356ba9f
1 changed files with 2 additions and 1 deletions
  1. 2 1
      compiler/scanner.pas

+ 2 - 1
compiler/scanner.pas

@@ -3721,7 +3721,8 @@ type
                  begin
                  begin
                    c:=inputpointer^;
                    c:=inputpointer^;
                    { eat utf-8 signature? }
                    { eat utf-8 signature? }
-                   if (ord(inputpointer^)=$ef) and
+                   if (bufsize>2) and
+                     (ord(inputpointer^)=$ef) and
                      (ord((inputpointer+1)^)=$bb) and
                      (ord((inputpointer+1)^)=$bb) and
                      (ord((inputpointer+2)^)=$bf) then
                      (ord((inputpointer+2)^)=$bf) then
                      begin
                      begin