[Spice-devel] [spice-gtk] Really fix SndCodec leaks in handle_{playback, record}_start
Christophe Fergeau
cfergeau at redhat.com
Wed Nov 19 02:47:21 PST 2014
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
More information about the Spice-devel
mailing list