diff -r 2aefd58f8ec5 -r 6ba2f471478b src/jdk.crypto.ec/share/classes/sun/security/ec/XDHKeyAgreement.java --- a/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHKeyAgreement.java Wed Aug 29 14:48:09 2018 -0400 +++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHKeyAgreement.java Thu Aug 30 11:08:01 2018 -0400 @@ -189,7 +189,7 @@ throw new IllegalStateException("Not initialized correctly"); } int secretLen = this.secret.length; - if (offset + secretLen > sharedSecret.length) { + if (secretLen > sharedSecret.length - offset) { throw new ShortBufferException("Need " + secretLen + " bytes, only " + (sharedSecret.length - offset) + " available");