From 966c4244cbe0de174df1e72e917078269ec9dbb9 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 17 Jun 2014 02:45:43 +0200 Subject: AsyncInputStream: fix assertion failure in AppendToBuffer() --- src/input/AsyncInputStream.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/input/AsyncInputStream.cxx') 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()) -- cgit v1.2.3