aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/input/AsyncInputStream.cxx10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/input/AsyncInputStream.cxx b/src/input/AsyncInputStream.cxx
index 43190f907..9b827463d 100644
--- a/src/input/AsyncInputStream.cxx
+++ b/src/input/AsyncInputStream.cxx
@@ -222,11 +222,13 @@ AsyncInputStream::AppendToBuffer(const void *data, size_t append_size)
const size_t remaining = append_size - nbytes;
if (remaining > 0) {
w = buffer.Write();
- assert(!w.IsEmpty());
- assert(w.size >= remaining);
- memcpy(w.data, (const uint8_t *)data + nbytes, remaining);
- buffer.Append(remaining);
+ if (!w.IsEmpty()) {
+ size_t nbytes2 = std::min(w.size, remaining);
+ memcpy(w.data, (const uint8_t *)data + nbytes,
+ nbytes2);
+ buffer.Append(nbytes2);
+ }
}
if (!IsReady())