diff options
author | Viliam Mateicka <viliam.mateicka@gmail.com> | 2009-01-10 21:33:38 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-01-11 17:13:01 +0100 |
commit | d357f585426d31b2b7e8efd3b92163b7b4f3c3f6 (patch) | |
tree | ab719858bf7ce0f6cd26ae077762c721f4145b4c /src/mixer/alsa_mixer.c | |
parent | 983822ea525f0d48c8329513c846fe183bd0353f (diff) | |
download | mpd-d357f585426d31b2b7e8efd3b92163b7b4f3c3f6.tar.gz mpd-d357f585426d31b2b7e8efd3b92163b7b4f3c3f6.tar.xz mpd-d357f585426d31b2b7e8efd3b92163b7b4f3c3f6.zip |
removing mixer_reconfigure memmory leak, fixing configure of alsa and oss mixer (passing parameters)
Diffstat (limited to 'src/mixer/alsa_mixer.c')
-rw-r--r-- | src/mixer/alsa_mixer.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/mixer/alsa_mixer.c b/src/mixer/alsa_mixer.c index 6930fa8a0..86a9ae86e 100644 --- a/src/mixer/alsa_mixer.c +++ b/src/mixer/alsa_mixer.c @@ -36,6 +36,10 @@ static void alsa_mixer_finish(struct mixer_data *data) { struct alsa_mixer *am = (struct alsa_mixer *)data; + if (am->device) + g_free(am->device); + if (am->control) + g_free(am->control); g_free(am); } @@ -45,10 +49,16 @@ alsa_mixer_configure(struct mixer_data *data, ConfigParam *param) struct alsa_mixer *am = (struct alsa_mixer *)data; BlockParam *bp; - if ((bp = getBlockParam(param, "mixer_device"))) - am->device = bp->value; - if ((bp = getBlockParam(param, "mixer_control"))) - am->control = bp->value; + if ((bp = getBlockParam(param, "mixer_device"))) { + if (am->device) + g_free(am->device); + am->device = g_strdup(bp->value); + } + if ((bp = getBlockParam(param, "mixer_control"))) { + if (am->control) + g_free(am->control); + am->control = g_strdup(bp->value); + } } static void |