From d042ab87da4aad4a742189437a3293ee7e516203 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Fri, 5 Aug 2016 18:15:30 +0200
Subject: [PATCH] decoder/Thread: delete the InputStream on error

Fixes memory leak after stream failure.  See
https://bugs.musicpd.org/view.php?id=4562
---
 NEWS                          | 1 +
 src/decoder/DecoderThread.cxx | 1 +
 2 files changed, 2 insertions(+)

diff --git a/NEWS b/NEWS
index e56ccc394..452e9b726 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ ver 0.19.18 (not yet released)
   - sidplay: allow building with libsidplayfp instead of libsidplay2
 * output
   - shout: recognize setting "encoder" instead of "encoding"
+* fix memory leak after stream failure
 * fix build failure with Boost 1.61
 * require gcc 4.7 or newer
 
diff --git a/src/decoder/DecoderThread.cxx b/src/decoder/DecoderThread.cxx
index d5f73c3e3..2e407e6ff 100644
--- a/src/decoder/DecoderThread.cxx
+++ b/src/decoder/DecoderThread.cxx
@@ -98,6 +98,7 @@ decoder_input_stream_open(DecoderControl &dc, const char *uri)
 
 	if (!is->Check(error)) {
 		dc.Unlock();
+		delete is;
 
 		LogError(error);
 		return nullptr;