RFR: 8329728: Read long lines in ClassListParser [v2]

Ioi Lam iklam at openjdk.org
Tue Apr 9 17:22:47 UTC 2024


> Today the `ClassListParser` has a hard-coded limit of 4096 chars for each line in the CDS class list file. However, it's possible for a line to be much longer than than (64KB for the class name, plus extra information that can include path names, IDs, etc).
> 
> I wrote a utility class `LineReader` that automatically allocates a buffer before calling `fgets()`. Hopefully this can be useful for other cases where we call `fgets()` with a fixed buffer size.
> 
> Max line width is limited to 4M to simplify testing (and avoid running into corner cases when we approach INT_MAX).

Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:

  @matias9927 and @calvinccheung comments - limit line to 4M. Added gtest cases. Test for class names > 64K

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/18669/files
  - new: https://git.openjdk.org/jdk/pull/18669/files/b0b004dd..034c29b8

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18669&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18669&range=00-01

  Stats: 205 lines in 6 files changed: 170 ins; 3 del; 32 mod
  Patch: https://git.openjdk.org/jdk/pull/18669.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18669/head:pull/18669

PR: https://git.openjdk.org/jdk/pull/18669


More information about the hotspot-dev mailing list