This is an automated email from the ASF dual-hosted git repository. johnnyv pushed a commit to branch 2.1.X in repository https://gitbox.apache.org/repos/asf/mina.git
commit 01e0497e274984ff3e65d709982d3789a8cf42f4 Author: Jonathan Valliere <john...@apache.org> AuthorDate: Thu Apr 15 01:00:29 2021 -0400 Adds hex dump length safety check --- .../java/org/apache/mina/core/buffer/IoBuffer.java | 4 ++-- .../org/apache/mina/core/buffer/IoBufferHexDumper.java | 1 - .../apache/mina/core/buffer/IoBufferHexDumperTest.java | 18 +++--------------- 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBuffer.java b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBuffer.java index 844ca96..0313d79 100644 --- a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBuffer.java +++ b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBuffer.java @@ -1545,8 +1545,8 @@ public abstract class IoBuffer implements Comparable<IoBuffer> { * @return hexidecimal representation of this buffer */ public String getHexDump(int length, boolean pretty) { - return (pretty) ? IoBufferHexDumper.getPrettyHexDumpSlice(this, this.position(), length) - : IoBufferHexDumper.getHexDumpSlice(this, this.position(), length); + return (pretty) ? IoBufferHexDumper.getPrettyHexDumpSlice(this, this.position(), Math.min(this.remaining(), length)) + : IoBufferHexDumper.getHexDumpSlice(this, this.position(), Math.min(this.remaining(), length)); } // ////////////////////////////// diff --git a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferHexDumper.java b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferHexDumper.java index 14f4582..ef02ed3 100644 --- a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferHexDumper.java +++ b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferHexDumper.java @@ -20,7 +20,6 @@ package org.apache.mina.core.buffer; import java.io.UnsupportedEncodingException; -import java.nio.charset.StandardCharsets; /** * Provides utility methods to dump an {@link IoBuffer} into a hex formatted diff --git a/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferHexDumperTest.java b/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferHexDumperTest.java index cc47a43..e17b454 100644 --- a/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferHexDumperTest.java +++ b/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferHexDumperTest.java @@ -16,10 +16,6 @@ public class IoBufferHexDumperTest { buf.flip(); -// System.out.println(buf.getHexDump()); -// System.out.println(buf.getHexDump(20)); -// System.out.println(buf.getHexDump(50)); - /* special case */ assertEquals(0, buf.getHexDump(0).length()); @@ -28,9 +24,9 @@ public class IoBufferHexDumperTest { assertEquals((Math.min(300, buf.limit()) * 3) - 1, buf.getHexDump(300).length()); /* must truncate */ - assertEquals((7 * 3) + 2, buf.getHexDump(7).length()); - assertEquals((10 * 3) + 2, buf.getHexDump(10).length()); - assertEquals((30 * 3) + 2, buf.getHexDump(30).length()); + assertEquals((7 * 3) - 1, buf.getHexDump(7).length()); + assertEquals((10 * 3) - 1, buf.getHexDump(10).length()); + assertEquals((30 * 3) - 1, buf.getHexDump(30).length()); } @@ -44,15 +40,7 @@ public class IoBufferHexDumperTest { buf.flip(); -// System.out.println(buf.getHexDump(0, true)); -// System.out.println(buf.getHexDump(20, true)); -// System.out.println(buf.getHexDump(50, true)); - String[] dump = buf.getHexDump(50, true).split("\\n"); - - for (String x : dump) { - System.out.println(x); - } assertEquals(4, dump.length); }