RFR (M): 8161224: CONSTANT_NameAndType_info permits references to illegal names and descriptors

harold seigel harold.seigel at oracle.com
Tue Sep 6 19:29:58 UTC 2016


Hi Rachel,

The change looks good.  Just one nit:

No resource mark is needed before calling classfile_parse_error() at 
line 4857.

(No new RFR needed.)

Thanks, Harold


On 9/1/2016 5:30 PM, Rachel Protacio wrote:
> Hello!
>
> Please review this fix, which addresses a few issues related to 
> incomplete format checking with NameAndType names and signatures.
>
> First, the code that should have been format checking the strings in 
> later classfile versions was in fact just checking for periods, so 
> I've rewritten it to call verify_unqualified_name(). Second, the 
> checks were (depending on the version) only performed when referenced 
> through Methodref/Fieldref/InterfaceMethodref/InvokeDynamic, meaning 
> that non-referenced NameAndType bytecodes did not get checked like 
> they were supposed to. My change enforces the spec in both aspects. To 
> summarize:
>
> The existing code had:
> - strict checks for pre-5.0
> - incomplete/non-spec-compliant checks for 5.0-and-later
> - no checks for un-referenced NameAndType (A) names and (B) 
> 6.0-and-earlier signatures.
>
> My change has:
> - the same strict checks for pre-5.0
> - complete/spec-compliant checks for 5.0-and-later
> - all checks moved to the NameAndType section so all names and 
> signatures will be checked regardless of whether NameAndType is 
> referenced.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8161224
> Open webrev: http://cr.openjdk.java.net/~rprotacio/8161224.00/
>
> Testing: The jck tests which had been failing for this bug now pass, 
> along with all other jck vm tests. Also tested with JPRT and RBT 
> hotspot_all and noncolo tests.
>
> A compatibility request has been approved for this change.
>
> Thank you,
> Rachel



More information about the hotspot-runtime-dev mailing list