diff options
Diffstat (limited to '')
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | src/output/shout_output_plugin.c | 9 |
2 files changed, 9 insertions, 3 deletions
@@ -1,5 +1,6 @@ ver 0.17.3 (2012/??/??) - +* output: + - shout: fix memory leak in error handler ver 0.17.2 (2012/09/30) * protocol: diff --git a/src/output/shout_output_plugin.c b/src/output/shout_output_plugin.c index d6805f542..bebc5e5da 100644 --- a/src/output/shout_output_plugin.c +++ b/src/output/shout_output_plugin.c @@ -439,8 +439,13 @@ my_shout_open_device(struct audio_output *ao, struct audio_format *audio_format, sd->buf.len = 0; - if (!encoder_open(sd->encoder, audio_format, error) || - !write_page(sd, error)) { + if (!encoder_open(sd->encoder, audio_format, error)) { + shout_close(sd->shout_conn); + return false; + } + + if (!write_page(sd, error)) { + encoder_close(sd->encoder); shout_close(sd->shout_conn); return false; } |