From 966c4244cbe0de174df1e72e917078269ec9dbb9 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
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')

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