RFR: JDK-8315422: getSoTimeout() would be in try block in SSLSocketImpl

Jamil Nimeh jnimeh at openjdk.org
Thu Aug 31 02:57:58 UTC 2023


On Thu, 31 Aug 2023 02:34:58 GMT, John Jiang <jjiang at openjdk.org> wrote:

> The method `SSLSocketImpl::closeSocket` has the below code snippet,
> 
> 
> if (appInput.readLock.tryLock()) {
>     int soTimeout = getSoTimeout();
>     try {
>         // deplete could hang on the skip operation
>         // in case of infinite socket read timeout.
>         // Change read timeout to avoid deadlock.
>         // This workaround could be replaced later
>         // with the right synchronization
>         if (soTimeout == 0)
>             setSoTimeout(DEFAULT_SKIP_TIMEOUT);
>         inputRecord.deplete(false);
>     } catch (java.net.SocketTimeoutException stEx) {
>         // skip timeout exception during deplete
>     } finally {
>         if (soTimeout == 0)
>             setSoTimeout(soTimeout);
>         appInput.readLock.unlock();
>     }
> }
> 
> 
> If `getSoTimeout()` throws an exception, say `SocketException`, `appInput.readLock.unlock()` cannot be called.

This looks good to me.

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

Marked as reviewed by jnimeh (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/15503#pullrequestreview-1603786718



More information about the security-dev mailing list