# HG changeset patch # User joehw # Date 1387561867 28800 # Node ID 1bedbbce236abcfb3ad41f969c235f30efb053c9 # Parent 9c7e3a68dc77279be5d4e633fed5176c55acb3f3 8029955: AIOB in XMLEntityScanner.scanLiteral upon parsing literals with > 100 LF chars Reviewed-by: dfuchs, lancea, ulfzibis diff -r 9c7e3a68dc77 -r 1bedbbce236a src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java --- a/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java Thu Dec 12 19:13:36 2013 -0800 +++ b/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java Fri Dec 20 09:51:07 2013 -0800 @@ -1142,7 +1142,7 @@ int i=0; for ( i = offset; i < fCurrentEntity.position; i++) { fCurrentEntity.ch[i] = '\n'; - whiteSpaceLookup[whiteSpaceLen++]=i; + storeWhiteSpace(i); } int length = fCurrentEntity.position - offset; @@ -1163,27 +1163,18 @@ } // scan literal value - while (fCurrentEntity.position < fCurrentEntity.count) { - c = fCurrentEntity.ch[fCurrentEntity.position++]; + for (; fCurrentEntity.position= whiteSpaceLookup.length) { + int [] tmp = new int[whiteSpaceLookup.length + 100]; + System.arraycopy(whiteSpaceLookup, 0, tmp, 0, whiteSpaceLookup.length); + whiteSpaceLookup = tmp; + } + + whiteSpaceLookup[whiteSpaceLen++] = whiteSpacePos; + } + //CHANGED: /** * Scans a range of character data up to the specified delimiter,