From d357f585426d31b2b7e8efd3b92163b7b4f3c3f6 Mon Sep 17 00:00:00 2001 From: Viliam Mateicka Date: Sat, 10 Jan 2009 21:33:38 +0100 Subject: removing mixer_reconfigure memmory leak, fixing configure of alsa and oss mixer (passing parameters) --- src/mixer/oss_mixer.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/mixer/oss_mixer.c') diff --git a/src/mixer/oss_mixer.c b/src/mixer/oss_mixer.c index db8431ab9..75f1f5a0b 100644 --- a/src/mixer/oss_mixer.c +++ b/src/mixer/oss_mixer.c @@ -19,8 +19,8 @@ #define VOLUME_MIXER_OSS_DEFAULT "/dev/mixer" struct oss_mixer { - const char *device; - const char *control; + char *device; + char *control; int device_fd; int volume_control; }; @@ -40,6 +40,10 @@ static void oss_mixer_finish(struct mixer_data *data) { struct oss_mixer *om = (struct oss_mixer *) data; + if (om->device) + g_free(om->device); + if (om->control) + g_free(om->control); g_free(om); } @@ -50,11 +54,15 @@ oss_mixer_configure(struct mixer_data *data, ConfigParam *param) BlockParam *bp; bp = getBlockParam(param, "mixer_device"); if (bp) { - om->device = bp->value; + if (om->device) + g_free(om->device); + om->device = g_strdup(bp->value); } bp = getBlockParam(param, "mixer_control"); if (bp) { - om->control = bp->value; + if (om->control) + g_free(om->control); + om->control = g_strdup(bp->value); } } -- cgit v1.2.3