RFR: 8333812: ClassFile.verify() can throw exceptions instead of returning VerifyErrors [v3]

Adam Sotona asotona at openjdk.org
Fri Jul 19 08:26:46 UTC 2024


> `ClassFile.verify()` should always return list of verification errors and never throw an exception, even for corrupted classes.
> `BoundAttribute` initializations of `LocalVariableTable` and `LocalVariableTypeTable` attributes do not expect invalid possible locations and cause `ClassCastException`.
> 
> This patch fixes `BoundAttribute` to throw `IllegalArgumentException` for invalid `LocalVariableTable` and `LocalVariableTypeTable` attributes locations. And makes `VerifierImpl` a bit more resilient to exceptions thrown from the verifier initialization.
> 
> Relevant test is added.
> 
> Please review.
> 
> Thanks,
> Adam

Adam Sotona has updated the pull request incrementally with one additional commit since the last revision:

  nit change

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/20241/files
  - new: https://git.openjdk.org/jdk/pull/20241/files/c5f6e018..af796a0d

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

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/20241.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20241/head:pull/20241

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


More information about the core-libs-dev mailing list