diff options
-rw-r--r-- | src/input/AsyncInputStream.cxx | 10 |
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()) |