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