The leak fix from commit 6729c341120f was actually not doing anything at all as it was setting c->codec to NULL before trying to free it. It was also not fixing the exact same leak in the record channel. This commit addresses these 2 issues. --- gtk/channel-playback.c | 3 +-- gtk/channel-record.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/gtk/channel-playback.c b/gtk/channel-playback.c index 40e01ba..ae8a75d 100644 --- a/gtk/channel-playback.c +++ b/gtk/channel-playback.c @@ -372,10 +372,9 @@ static void playback_handle_start(SpiceChannel *channel, SpiceMsgIn *in) c->last_time = start->time; c->is_active = TRUE; c->min_latency = SPICE_PLAYBACK_DEFAULT_LATENCY_MS; - c->codec = NULL; + snd_codec_destroy(&c->codec); if (c->mode != SPICE_AUDIO_DATA_MODE_RAW) { - snd_codec_destroy(&c->codec); if (snd_codec_create(&c->codec, c->mode, start->frequency, SND_CODEC_DECODE) != SND_CODEC_OK) { g_warning("create decoder failed"); return; diff --git a/gtk/channel-record.c b/gtk/channel-record.c index 946d66f..ac71999 100644 --- a/gtk/channel-record.c +++ b/gtk/channel-record.c @@ -406,7 +406,7 @@ static void record_handle_start(SpiceChannel *channel, SpiceMsgIn *in) g_return_if_fail(start->format == SPICE_AUDIO_FMT_S16); - c->codec = NULL; + snd_codec_destroy(&c->codec); if (c->mode != SPICE_AUDIO_DATA_MODE_RAW) { if (snd_codec_create(&c->codec, c->mode, start->frequency, SND_CODEC_ENCODE) != SND_CODEC_OK) { -- 2.1.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel