On Thu, 22 Apr 2021 04:13:54 GMT, Xue-Lei Andrew Fan <xue...@openjdk.org> wrote:

>> As described in the bug, by connecting the SSLEngine with a misbehaving peer 
>> SSL implementation, it can get into a state where it calling `wrap` reports 
>> getStatus == OK, getHandshakeStatus === NEED_WRAP but still doesn't produce 
>> any further output.   It happens when the output bound is not empty.
>> 
>> It is caused by a mismatching condition in the SSLEngineOutputRecord.  The 
>> use hasAlert() method should be replaced with isEmpty().  Otherwise, there 
>> is conflicts of the closing status while checking with 
>> OutputRecord.isEmpty() in TransportContext.getHandshakeStatus() 
>> implementation.  It is safe to remove hasAlert() method, as we don't allow 
>> creation of new output record if the closure is in progress, thus isEmpty() 
>> could be used instead.
>> 
>> The patch passed the test provided by the bug submitter.
>
> Xue-Lei Andrew Fan has updated the pull request with a new target base due to 
> a merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains three additional 
> commits since the last revision:
> 
>  - Merge
>  - improved fix
>  - 8263779: SSLEngine reports NEED_WRAP continuously without producing any 
> further output

SSLEngineOutputRecord.java:
Missing copyright date update.

SSLEngineOutputRecord:77
Unnecessary extra line added.  Please remove.

src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java line 1694:

> 1692:         if (cause instanceof SocketException) {
> 1693:             try {
> 1694:                 throw conContext.fatal(alert, cause);

Why did you change to a throw here?  Isn't everything from fatal() going to be 
thrown anyway?

src/java.base/share/classes/sun/security/ssl/TransportContext.java line 587:

> 585:     }
> 586: 
> 587:     // Note: HandshakeStatus.FINISHED status is retrieved in other 
> places.

I now see that v1 of this change had quite a few changes here, and what's left 
is now just compacting a line and making some old comment corrections.

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

Marked as reviewed by wetmore (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/3292

Reply via email to