RFR: 8264774: Implementation of Foreign Function and Memory API (Incubator) [v2]

Maurizio Cimadamore mcimadamore at openjdk.java.net
Wed Apr 28 18:17:59 UTC 2021


On Wed, 28 Apr 2021 18:02:03 GMT, Mandy Chung <mchung at openjdk.org> wrote:

> I reviewed the `--enable-native-access` related change that looks fine.
> 
> > Access to restricted methods from any other module not in the list is disallowed and will result in an IllegalAccessException.
> 
> I think you meant to say `IllegalCallerException` instead of `IllegalAccessException`. Also do you intend to have javadoc to generate `@throw IllegalCallerException` for the restricted methods automatically besides the javadoc description?
> 

IllegalCalller is probably better yes - we started off with an access-like check, so things have evolved a bit. I'll also add the @throws.

> Making the restricted methods as `@CallerSensitive` in order to get the caller class for native access check is the proper approach. However, some interface methods are restricted methods such as `CLinker::downcallHandle` whose the implementation method is `@CallerSensitive`. I concern with the security issue with method handle and type aliasing. On the other hand, `CLinker` is a sealed interface and only implemented by the platform and so it's less of a concern. I think the interface method should also be `@CallerSensitive` so that for example a method handle for `CLinker::downcallHandle` will be produced with the proper caller-sensitive context.

I believe that we had to move @CallerSensitive out of interfaces because there was a test that was checking that @CS was not put on "virtual" methods.

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

PR: https://git.openjdk.java.net/jdk/pull/3699


More information about the nio-dev mailing list