summaryrefslogtreecommitdiffstats
path: root/jdisc_core/src/main/java/com
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2022-07-14 15:01:14 +0200
committerBjørn Christian Seime <bjorncs@yahooinc.com>2022-07-14 15:05:18 +0200
commit0721ad6bc737df2ffa06e0818700610629601a5d (patch)
tree50024c53c8e12c046b9734554bab141ea24887b7 /jdisc_core/src/main/java/com
parent439da54cb6068d6097fc65bdd8e5d0e6d108d81a (diff)
Fix bug in UnsafeContentInputStream where read() corrupts "marked" content
Diffstat (limited to 'jdisc_core/src/main/java/com')
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/handler/UnsafeContentInputStream.java7
1 files changed, 3 insertions, 4 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 4d54c40209c..4af40a22447 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,10 +71,9 @@ public class UnsafeContentInputStream extends InputStream {
read += toRead;
}
if (marked != null) {
- if (readSinceMarked + len <= marked.length) {
- for (int i=0; i < len; i++) {
- marked[readSinceMarked++] = buf[off+i];
- }
+ if (readSinceMarked + read <= marked.length) {
+ System.arraycopy(buf, off, marked, readSinceMarked, read);
+ readSinceMarked += read;
} else {
marked = null;
}