This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 7.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit b51700209311c352e1c35d7845237da7a435b06b Author: Mark Thomas <ma...@apache.org> AuthorDate: Tue Jun 30 14:18:55 2020 +0100 Correct calculation of payload length when using 4 or more bytes --- java/org/apache/catalina/util/Conversions.java | 2 +- test/org/apache/catalina/util/TestConversions.java | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/java/org/apache/catalina/util/Conversions.java b/java/org/apache/catalina/util/Conversions.java index 322fdbb..b98c2d0 100644 --- a/java/org/apache/catalina/util/Conversions.java +++ b/java/org/apache/catalina/util/Conversions.java @@ -33,7 +33,7 @@ public class Conversions { int shift = 0; long result = 0; for (int i = input.length - 1; i >= 0; i--) { - result = result + ((input[i] & 0xFF) << shift); + result = result + ((input[i] & 0xFFL) << shift); shift += 8; } diff --git a/test/org/apache/catalina/util/TestConversions.java b/test/org/apache/catalina/util/TestConversions.java index fae4f8b..a9a228b 100644 --- a/test/org/apache/catalina/util/TestConversions.java +++ b/test/org/apache/catalina/util/TestConversions.java @@ -28,10 +28,14 @@ public class TestConversions { Assert.assertEquals(0L, Conversions.byteArrayToLong(new byte[] { 0 })); Assert.assertEquals(1L, Conversions.byteArrayToLong(new byte[] { 1 })); Assert.assertEquals(0xFF, Conversions.byteArrayToLong(new byte[] { -1 })); - Assert.assertEquals(0xFFFF, - Conversions.byteArrayToLong(new byte[] { -1, -1 })); - Assert.assertEquals(0xFFFFFF, - Conversions.byteArrayToLong(new byte[] { -1, -1, -1 })); + Assert.assertEquals(0xFFFF, Conversions.byteArrayToLong(new byte[] { -1, -1 })); + Assert.assertEquals(0xFFFFFF, Conversions.byteArrayToLong(new byte[] { -1, -1, -1 })); + Assert.assertEquals(0xFFFFFFFFL, Conversions.byteArrayToLong(new byte[] { -1, -1, -1, -1 })); + Assert.assertEquals(0xFFFFFFFFFFL, Conversions.byteArrayToLong(new byte[] { -1, -1, -1, -1, -1 })); + Assert.assertEquals(0xFFFFFFFFFFFFL, Conversions.byteArrayToLong(new byte[] { -1, -1, -1, -1, -1, -1 })); + Assert.assertEquals(0xFFFFFFFFFFFFFFL, Conversions.byteArrayToLong(new byte[] { -1, -1, -1, -1, -1, -1, -1 })); + Assert.assertEquals(0x7FFFFFFFFFFFFFFFL, Conversions.byteArrayToLong(new byte[] {127, -1, -1, -1, -1, -1, -1, -1 })); + Assert.assertEquals(-1, Conversions.byteArrayToLong(new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 })); } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org