mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8273553: sun.security.ssl.SSLEngineImpl.closeInbound also has similar error of JDK-8253368
Reviewed-by: xuelei, rhalade, coffeys
This commit is contained in:
parent
afd0f5a904
commit
0b09f70a73
3 changed files with 505 additions and 13 deletions
|
@ -48,7 +48,7 @@ import javax.net.ssl.SSLProtocolException;
|
|||
import javax.net.ssl.SSLSession;
|
||||
|
||||
/**
|
||||
* Implementation of an non-blocking SSLEngine.
|
||||
* Implementation of a non-blocking SSLEngine.
|
||||
*
|
||||
* @author Brad Wetmore
|
||||
*/
|
||||
|
@ -270,7 +270,7 @@ final class SSLEngineImpl extends SSLEngine implements SSLTransport {
|
|||
if (ciphertext == null && !conContext.isNegotiated &&
|
||||
conContext.isInboundClosed() &&
|
||||
hsStatus == HandshakeStatus.NEED_WRAP) {
|
||||
// Even the outboud is open, no futher data could be wrapped as:
|
||||
// Even the outbound is open, no further data could be wrapped as:
|
||||
// 1. the outbound is empty
|
||||
// 2. no negotiated connection
|
||||
// 3. the inbound has closed, cannot complete the handshake
|
||||
|
@ -789,17 +789,17 @@ final class SSLEngineImpl extends SSLEngine implements SSLTransport {
|
|||
// Is it ready to close inbound?
|
||||
//
|
||||
// No exception if the initial handshake is not started.
|
||||
if (!conContext.isInputCloseNotified &&
|
||||
(conContext.isNegotiated ||
|
||||
conContext.handshakeContext != null)) {
|
||||
|
||||
throw conContext.fatal(Alert.INTERNAL_ERROR,
|
||||
if (!conContext.isInputCloseNotified && (conContext.isNegotiated
|
||||
|| conContext.handshakeContext != null)) {
|
||||
throw new SSLException(
|
||||
"closing inbound before receiving peer's close_notify");
|
||||
}
|
||||
|
||||
conContext.closeInbound();
|
||||
} finally {
|
||||
engineLock.unlock();
|
||||
try {
|
||||
conContext.closeInbound();
|
||||
} finally {
|
||||
engineLock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -838,9 +838,10 @@ public final class SSLSocketImpl
|
|||
// No need to throw exception if the initial handshake is not started.
|
||||
try {
|
||||
if (checkCloseNotify && !conContext.isInputCloseNotified &&
|
||||
(conContext.isNegotiated || conContext.handshakeContext != null)) {
|
||||
throw new SSLException(
|
||||
"closing inbound before receiving peer's close_notify");
|
||||
(conContext.isNegotiated ||
|
||||
conContext.handshakeContext != null)) {
|
||||
throw new SSLException(
|
||||
"closing inbound before receiving peer's close_notify");
|
||||
}
|
||||
} finally {
|
||||
conContext.closeInbound();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue