On Mon, 13 May 2024 17:24:39 GMT, Maurizio Cimadamore <mcimadam...@openjdk.org> wrote:
>> src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java >> line 205: >> >>> 203: private void verifyAttribute(AttributedElement ae, Attribute<?> a, >>> List<VerifyError> errors) { >>> 204: int payLoad = ((BoundAttribute)a).payloadLen(); >>> 205: if (payLoad != switch (a) { >> >> Please break this up - e.g. with an intermediate `foundPayload` variable - >> having a multi-line switch nested as an if condition looks very jarring! > > Is this method only supposed to check the attribute size? It would be nice > perhaps to enhance this to enforce more structural constraints - I added a > couple of comments in that direction, but there's many more (e.g. for > instance make sure that any entry that morally points to a class/method is of > the right kind) Some of the checks don't verify the attributes point to valid cp entries; since CF API is lazy, those entries much be expanded by calling the accessors on Bound attributes. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/16809#discussion_r1598822622