RFR: 8362268 : NPE thrown from SASL GSSAPI impl when TLS is used with QOP auth-int against Active Directory [v3]
Brent Christian
bchristi at openjdk.org
Wed Oct 1 18:38:55 UTC 2025
On Tue, 2 Sep 2025 15:28:00 GMT, Weibing Xiao <wxiao at openjdk.org> wrote:
>> [webrev.zip](https://github.com/user-attachments/files/22605072/webrev.zip)
>> NPE thrown from SASL GSSAPI impl when TLS is used with QOP auth-int against Active Directory.
>>
>> When the exception is triggered, LDAP Connection will do "clean-up" operation and output stream get flushed and closed the context while GssKrb5Client is still wrapping the message, and tried to send the abandoned info to the client at line https://github.com/openjdk/jdk/blob/master/src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java#L140. That's the reason to throw NPE.
>>
>> The change is going to close socket and output stream in LdapClient.java. It would allow SASL client code to send the abandoned request to client; then dispose GSS context. This will avoid NPE to thrown at line 140 of GssKrb5Base.java.
>>
>> No test file is attached for this MR since it needs Sasl LDAP server with security setup. Attached the updated webrev for the reference.
>
> Weibing Xiao has updated the pull request incrementally with two additional commits since the last revision:
>
> - remove unused code
> - removed the commented out code
src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java line 688:
> 686:
> 687: flushAndCloseOutputStream();
> 688: // 8313657 socket is not closed until GC is run
Would it be worth keeping a comment here about why `sock` is not closed, or at least mentioning 8362268?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26566#discussion_r2395496537
More information about the security-dev
mailing list