From 85877791beb48d083d7dd8c60d017500cc68496d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 21 Sep 2008 22:42:51 +0200 Subject: [PATCH] mpdclient: fix memory leak in mpdclient_finish_command() During authentication, the message pointer was allocated, but never freed. Allocate it only if it is really used (and freed). --- src/mpdclient.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mpdclient.c b/src/mpdclient.c index c15c34d..fcdaa4e 100644 --- a/src/mpdclient.c +++ b/src/mpdclient.c @@ -123,16 +123,17 @@ mpdclient_finish_command(mpdclient_t *c) mpd_finishCommand(c->connection); if (c->connection->error) { - gchar *msg = locale_to_utf8(c->connection->errorStr); gint error = c->connection->error; - - if (error == MPD_ERROR_ACK) - error = error | (c->connection->errorCode << 8); + gchar *msg; if (c->connection->errorCode == MPD_ACK_ERROR_PERMISSION && screen_auth(c) == 0) return 0; + if (error == MPD_ERROR_ACK) + error = error | (c->connection->errorCode << 8); + + msg = locale_to_utf8(c->connection->errorStr); error_cb(c, error, msg); g_free(msg); return error; -- 2.30.2