diff -r 9873beb737e9 -r 25fec8839946 jdk/src/java.base/share/classes/com/sun/crypto/provider/CounterMode.java --- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/CounterMode.java Wed Nov 09 13:37:19 2016 +0100 +++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/CounterMode.java Thu Nov 17 01:17:26 2016 -0800 @@ -172,10 +172,12 @@ * are encrypted on demand. */ private int crypt(byte[] in, int inOff, int len, byte[] out, int outOff) { - - Objects.checkFromIndexSize(inOff, len, in.length); - Objects.checkFromIndexSize(outOff, len, out.length); - return implCrypt(in, inOff, len, out, outOff); + if (len == 0) { + return 0; + } + Objects.checkFromIndexSize(inOff, len, in.length); + Objects.checkFromIndexSize(outOff, len, out.length); + return implCrypt(in, inOff, len, out, outOff); } // Implementation of crpyt() method. Possibly replaced with a compiler intrinsic.