RFR JDK-8233527: Update Lookup::hasPrivateAccess and Lookup::defineClass spec w.r.t. full power lookup

Johannes Kuhn info at j-kuhn.de
Wed Nov 13 14:10:19 UTC 2019


On 11.11.2019 22:23, Mandy Chung wrote:
> This is a follow-up of JDK-8226916. Lookup::hasPrivateAccess intends 
> to test if this lookup is a full-power lookup; that is created by the 
> original caller class calling MethodHandles::lookup. The current 
> specification for Lookup::hasPrivateAccess returns true if the lookup 
> modes contain PRIVATE but it does not check MODULE bit.
>
> This patch also clarifies the capabilities w.r.t PRIVATE access and 
> full-power access. The security permission check is performed if the 
> Lookup is not a full power lookup and therefore Lookup::defineClass 
> spec should be updated to perform security permission check if the 
> security manager is present and this lookup refuses access, consistent 
> with other Lookup operations.
>
> http://cr.openjdk.java.net/~mchung/jdk14/8233527/webrev.02/
> http://cr.openjdk.java.net/~mchung/jdk14/8233527/specdiff/
>
> CSR: https://bugs.openjdk.java.net/browse/JDK-8233726
>
> thanks
> Mandy

Thank you for all those changes. It fixed two of my reported bugs 
(JDK-8209005, JDK-8209078).
It also makes my suggested workaround for JDK-8230636 not longer 
possible. Thanks for picking that up too.

I just have a question about the requirement of 
MethodHandles.privateLookupIn: As it requires that the originating 
lookup has both PRIVATE and MODULE access, it sounds a lot like full 
privilege access. Should this be reworded?

Also, with the current specification, I don't see a way to abuse 
jdk.unsupported's privileged access into java.base (which IMHO caused 
the entire rework).

thanks,
Johannes



More information about the core-libs-dev mailing list