aboutsummaryrefslogtreecommitdiffstats
path: root/src/player_thread.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-06-02 08:37:30 +0200
committerMax Kellermann <max@duempel.org>2009-06-02 08:40:28 +0200
commitaa7f5dec87e5decd2905056938e0af0e35aa0130 (patch)
tree8007361730a17df8ac72886c8be02b12b90a459d /src/player_thread.c
parent1800bde3038f6af07d4b9383f30580c3da95c210 (diff)
downloadmpd-aa7f5dec87e5decd2905056938e0af0e35aa0130.tar.gz
mpd-aa7f5dec87e5decd2905056938e0af0e35aa0130.tar.xz
mpd-aa7f5dec87e5decd2905056938e0af0e35aa0130.zip
player_thread: don't leak empty music_chunks
When a music_chunk only contains a tag but no PCM data, play_chunk() returns true without freeing the chunk. The caller now assumes that the chunk is moved into some music_pipe and does not bother to free it either.
Diffstat (limited to 'src/player_thread.c')
-rw-r--r--src/player_thread.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/player_thread.c b/src/player_thread.c
index f00d1aba8..add093083 100644
--- a/src/player_thread.c
+++ b/src/player_thread.c
@@ -447,8 +447,10 @@ play_chunk(struct song *song, struct music_chunk *chunk,
}
}
- if (chunk->length == 0)
+ if (chunk->length == 0) {
+ music_buffer_return(player_buffer, chunk);
return true;
+ }
pc.elapsed_time = chunk->times;
pc.bit_rate = chunk->bit_rate;