From 7a47d0065fe6ed86055441fecc0e193747ca456e Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Sun, 3 Jul 2022 18:15:23 +0200 Subject: Fix off-by-one error related to marking inn UnsafeContentInputStream --- .../main/java/com/yahoo/jdisc/handler/UnsafeContentInputStream.java | 2 +- .../com/yahoo/jdisc/handler/UnsafeContentInputStreamTestCase.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/handler/UnsafeContentInputStream.java b/jdisc_core/src/main/java/com/yahoo/jdisc/handler/UnsafeContentInputStream.java index 731e28b556c..4d54c40209c 100644 --- a/jdisc_core/src/main/java/com/yahoo/jdisc/handler/UnsafeContentInputStream.java +++ b/jdisc_core/src/main/java/com/yahoo/jdisc/handler/UnsafeContentInputStream.java @@ -71,7 +71,7 @@ public class UnsafeContentInputStream extends InputStream { read += toRead; } if (marked != null) { - if (readSinceMarked + len < marked.length) { + if (readSinceMarked + len <= marked.length) { for (int i=0; i < len; i++) { marked[readSinceMarked++] = buf[off+i]; } diff --git a/jdisc_core/src/test/java/com/yahoo/jdisc/handler/UnsafeContentInputStreamTestCase.java b/jdisc_core/src/test/java/com/yahoo/jdisc/handler/UnsafeContentInputStreamTestCase.java index 864604d76d6..134c34641a5 100644 --- a/jdisc_core/src/test/java/com/yahoo/jdisc/handler/UnsafeContentInputStreamTestCase.java +++ b/jdisc_core/src/test/java/com/yahoo/jdisc/handler/UnsafeContentInputStreamTestCase.java @@ -50,6 +50,11 @@ public class UnsafeContentInputStreamTestCase { stream.read(buf); assertEquals("ello Wor", Utf8.toString(buf)); stream.reset(); + stream.mark(8); + buf = new byte[8]; + stream.read(buf); + assertEquals("ello Wor", Utf8.toString(buf)); + stream.reset(); stream.mark(5); buf = new byte [9]; stream.read(buf); -- cgit v1.2.3