RFR: 8346785: Potential infinite loop in JavadocTokenizer.ensures [v2]
Hannes Wallnöfer
hannesw at openjdk.org
Thu Apr 24 15:08:48 UTC 2025
On Thu, 24 Apr 2025 14:28:21 GMT, Nizar Benalla <nbenalla at openjdk.org> wrote:
>> Please review this patch to fix a potential infinite loop in `JavadocTokenizer.ensure` when `map.length` and `size + need` approach Interger.MAX_VALUE.
>>
>> While I couldn't reproduce the issue even with large inputs (~1.9GB java file where almost the entire file is one javadoc comment), the fix is about correctness and prevention of UB in extreme cases.
>>
>> TIA
>
> Nizar Benalla has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
>
> - respond to feedback -- keep int[] instead of Arraylist and add check for grow <= 0
> - Merge branch 'master' into jd-ensure
> - fix JdT.ensure
src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavadocTokenizer.java line 313:
> 311:
> 312: if (grow <= 0) {
> 313: throw new IndexOutOfBoundsException();
This check needs to be inside the `while` loop (see bug description).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24620#discussion_r2058668490
More information about the compiler-dev
mailing list