On Fri, 15 Apr 2022 07:20:42 GMT, Xue-Lei Andrew Fan <xue...@openjdk.org> wrote:

>> This is an effort to fix a problem introduced in the fix for 
>> [JDK-8284368](https://bugs.openjdk.java.net/browse/JDK-8284368), which 
>> replaced the finalizers in jdk.crypto.cryptoki with Cleaners.  However, 
>> there is a problem with the code changes. The Runnables registered with 
>> Cleaner refer to the object being registered ('this'). Meaning, the Cleaner 
>> mechanism will keep the objects reachable, preventing them from being 
>> cleaned and collected.
>
> Xue-Lei Andrew Fan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Don't use lambda in cleaner

src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyStore.java line 
235:

> 233:                 this.password = password.clone();
> 234:                 P11Util.cleaner.register(this,
> 235:                         () -> Arrays.fill(this.password, ' '));

This lambda most probably capture `this` so it will create a leak.

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

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

Reply via email to