From c7748fedab96da650c81f8a9fad7ec61a3bd96df Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 1 Oct 2012 23:18:33 +0200 Subject: [PATCH] output/shout: fix memory leak in error handler --- NEWS | 3 ++- src/output/shout_output_plugin.c | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 5ff831097..46963f308 100644 --- a/NEWS +++ b/NEWS @@ -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; }