You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2020/06/30 13:21:19 UTC
[tomcat] 01/02: Correct calculation of payload length when using 4
or more bytes
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org