RFR: 8275811 Incorrect instance to dispose [v5]
Xue-Lei Andrew Fan
xuelei at openjdk.java.net
Tue Nov 2 23:46:19 UTC 2021
On Mon, 1 Nov 2021 20:38:32 GMT, Daniel Jeliński <duke at openjdk.java.net> wrote:
>> The current code that changes cipher suites disposes the new suite instead of the old one, which usually silently fails. This patch fixes the code to dispose the old instance instead.
>>
>> DTLS appears to be unaffected: DTLSOutputRecord keeps 2 ciphers and correctly [disposes the old one](https://github.com/openjdk/jdk/blob/739769c8fc4b496f08a92225a12d07414537b6c0/src/java.base/share/classes/sun/security/ssl/DTLSOutputRecord.java#L106), and DTLSInputRecord [doesn't dispose anything](https://github.com/openjdk/jdk/blob/4b9303b77b43d890ebacbec38b4ac5db7e171886/src/java.base/share/classes/sun/security/ssl/DTLSInputRecord.java#L57)
>
> Daniel Jeliński has updated the pull request incrementally with one additional commit since the last revision:
>
> avoid modifying DTLSOutputRecord
src/java.base/share/classes/sun/security/ssl/SSLEngineOutputRecord.java line 436:
> 434:
> 435: void queueUpCipherDispose() {
> 436: RecordMemo lastMemo = handshakeMemos.getLast();
Sorry, I missed that the getLast could throw exception if it is empty. I may check it before the call to getLast.
+ if (handshakeMemos.isEmpty()) {
+ return;
+ }
-------------
PR: https://git.openjdk.java.net/jdk/pull/6084
More information about the security-dev
mailing list