summaryrefslogtreecommitdiffstats
path: root/jdisc_core
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-07-03 18:15:23 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-07-03 18:15:23 +0200
commit7a47d0065fe6ed86055441fecc0e193747ca456e (patch)
tree641bab71593774a80542e29947d428d50e94d10c /jdisc_core
parent89b37f7a7fda13eb031cb45a37092fe086242cd0 (diff)
Fix off-by-one error related to marking inn UnsafeContentInputStream
Diffstat (limited to 'jdisc_core')
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/handler/UnsafeContentInputStream.java2
-rw-r--r--jdisc_core/src/test/java/com/yahoo/jdisc/handler/UnsafeContentInputStreamTestCase.java5
2 files changed, 6 insertions, 1 deletions
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);