Integrated: 8333812: ClassFile.verify() can throw exceptions instead of returning VerifyErrors

Adam Sotona asotona at openjdk.org
Fri Jul 19 13:12:41 UTC 2024


On Thu, 18 Jul 2024 16:23:44 GMT, Adam Sotona <asotona at openjdk.org> wrote:

> `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

This pull request has now been integrated.

Changeset: c25c4896
Author:    Adam Sotona <asotona at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/c25c4896ad9ef031e3cddec493aef66ff87c48a7
Stats:     44 lines in 4 files changed: 37 ins; 0 del; 7 mod

8333812: ClassFile.verify() can throw exceptions instead of returning VerifyErrors

Reviewed-by: liach

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

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


More information about the core-libs-dev mailing list