소스 검색

fix #534 : check byte size for bom

Shinsuke Sugaya 9 년 전
부모
커밋
43b09de15f
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      src/main/java/org/codelibs/fess/crawler/transformer/FessXpathTransformer.java

+ 2 - 2
src/main/java/org/codelibs/fess/crawler/transformer/FessXpathTransformer.java

@@ -101,8 +101,8 @@ public class FessXpathTransformer extends XpathTransformer implements FessTransf
         try (final BufferedInputStream bis = new BufferedInputStream(responseData.getResponseBody())) {
         try (final BufferedInputStream bis = new BufferedInputStream(responseData.getResponseBody())) {
             final byte[] bomBytes = new byte[UTF8_BOM_SIZE];
             final byte[] bomBytes = new byte[UTF8_BOM_SIZE];
             bis.mark(UTF8_BOM_SIZE);
             bis.mark(UTF8_BOM_SIZE);
-            bis.read(bomBytes);
-            if (!isUtf8BomBytes(bomBytes)) {
+            final int size = bis.read(bomBytes);
+            if (size < 3 || !isUtf8BomBytes(bomBytes)) {
                 bis.reset();
                 bis.reset();
             }
             }
             final InputSource is = new InputSource(bis);
             final InputSource is = new InputSource(bis);