From 713a41316265afbfe8705bb668ad848c656128a5 Mon Sep 17 00:00:00 2001 From: Josua Mayer Date: Sat, 7 Oct 2017 17:02:04 +0200 Subject: [PATCH 1/2] Arrays::getLength: include 'from' in exception message Use append to add 'from' value to the ByteBuffer. This avoids accidentally interpreting it as initial buffer capacity in the constructor. Signed-off-by: Josua Mayer --- core/src/main/java/org/bouncycastle/util/Arrays.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/bouncycastle/util/Arrays.java b/core/src/main/java/org/bouncycastle/util/Arrays.java index ae60928061..036f293d9a 100644 --- a/core/src/main/java/org/bouncycastle/util/Arrays.java +++ b/core/src/main/java/org/bouncycastle/util/Arrays.java @@ -895,8 +895,8 @@ private static int getLength(int from, int to) int newLength = to - from; if (newLength < 0) { - StringBuffer sb = new StringBuffer(from); - sb.append(" > ").append(to); + StringBuffer sb = new StringBuffer(); + sb.append(from).append(" > ").append(to); throw new IllegalArgumentException(sb.toString()); } return newLength; From 6e95e0293c11330d77e636dd68d77c2c981bf70e Mon Sep 17 00:00:00 2001 From: Josua Mayer Date: Sat, 7 Oct 2017 17:50:39 +0200 Subject: [PATCH 2/2] Arrays::copyOfRange: throw exception for negative range Throw IllegalArgumentException if from > to (newLength < 0). Signed-off-by: Josua Mayer --- core/src/main/java/org/bouncycastle/util/Arrays.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/src/main/java/org/bouncycastle/util/Arrays.java b/core/src/main/java/org/bouncycastle/util/Arrays.java index 036f293d9a..ee61b7a38a 100644 --- a/core/src/main/java/org/bouncycastle/util/Arrays.java +++ b/core/src/main/java/org/bouncycastle/util/Arrays.java @@ -821,6 +821,11 @@ public static BigInteger[] copyOf(BigInteger[] data, int newLength) public static byte[] copyOfRange(byte[] data, int from, int to) { int newLength = getLength(from, to); + if(newLength < 0) { + StringBuffer sb = new StringBuffer(); + sb.append(from).append(" > ").append(to); + throw new IllegalArgumentException(sb.toString()); + } byte[] tmp = new byte[newLength];