From 5ece12982ac9ea408b7790c91ac9363384baf750 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Thu, 21 Sep 2006 08:27:24 +0000
Subject: outputBuffer: avoid out-of-bounds-error in clearOutputBuffer()

I'm still not entirely certain why we index cb->metaChunkSet[]
with currentChunk (and not currentMetaChunk), but shank told me
that currentChunk is correct...

git-svn-id: https://svn.musicpd.org/mpd/trunk@4814 09075e82-0dd4-0310-85a5-a0d7c8717e4f
---
 src/outputBuffer.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/outputBuffer.c b/src/outputBuffer.c
index 2b06ae529..d3a3ef464 100644
--- a/src/outputBuffer.c
+++ b/src/outputBuffer.c
@@ -41,18 +41,18 @@ void clearOutputBuffer(OutputBuffer * cb)
 {
 	int currentSet = 1;
 
-	currentChunk = -1;
 	cb->end = cb->begin;
 
 	/* be sure to reset metaChunkSets cause we are skipping over audio
 	 * audio chunks, and thus skipping over metadata */
-	if (sendMetaChunk == 0 && currentMetaChunk >= 0) {
+	if (currentChunk >= 0 && sendMetaChunk == 0 && currentMetaChunk >= 0) {
 		currentSet = cb->metaChunkSet[currentChunk];
 	}
 	clearAllMetaChunkSets(cb);
-	if (sendMetaChunk == 0 && currentMetaChunk >= 0) {
+	if (currentChunk >= 0 && sendMetaChunk == 0 && currentMetaChunk >= 0) {
 		cb->metaChunkSet[currentChunk] = currentSet;
 	}
+	currentChunk = -1;
 }
 
 void flushOutputBuffer(OutputBuffer * cb)
-- 
cgit v1.2.3