On Wed, 8 Mar 2023 09:05:19 GMT, Alexey Bakhtin <abakh...@openjdk.org> wrote:

> This patch fixes a possible native memory leak in case of a custom native GSS 
> provider.
> The actual leak was reported in production.
> 
> sun/security/jgss, sun/security/krb5, sun/net/www/protocol/http jtreg tests 
> are passed

I'm not familiar with this code and don't know how to execute it, but since you 
mentioned  native memory leak...

I'm assuming NativeGSSConext is the class that holds a reference to the native 
memory. The class has a cleaner that is supposed to release the memory. It was 
recently refactored in JDK-8284490, and I think this refactoring introduced the 
leak. See:
https://github.com/openjdk/jdk/blob/master/src/java.security.jgss/share/classes/sun/security/jgss/wrapper/NativeGSSContext.java#L374-L377
`cleanable.clean()` calls `stub.deleteContext(pContext)`, but `pContext` is 
already zero.
Before ffca23a5313855a6f9797ad6b342bb2e2cb1b49b `deleteContext` was called 
before setting `pContext` to zero.

In general, when fixing native memory leaks, please focus on fixing broken 
cleaners, rather than manually disposing the memory.

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

PR: https://git.openjdk.org/jdk/pull/12920

Reply via email to