alsa/0018-UCM-fix-memory-leak-when-executing-cset-commands.patch

46 lines
1.1 KiB
Diff
Raw Normal View History

Accepting request 72599 from home:tiwai:branches:multimedia:libs - Backport alsa-lib fixes from upstream: 0001-Fix-alsa-lib-to-regard-3D-control-Depth-as-Playback-.patch 0002-alsa-lib-add-LaCie-Firewire-Speakers-Griffin-FireWav.patch 0003-alsa-lib-ucm-allow-values-to-be-read-from-devices.patch 0004-UCM-comment-fixes-and-fix-myvalue-initialization-fix.patch 0005-UCM-Fix-empty-get_list-initialize-returned-pointer-t.patch 0006-Conf-Fix-channels-of-ICE1712-to-10-12.patch 0007-UCM-Fix-LGPL-licence-how-to-receive-part-referred-GP.patch 0008-configure-Fail-when-the-user-attempts-to-compile-sha.patch 0009-Mark-Heaphone-Center-LFE-control-of-emu10k1-conf-as-.patch 0010-Fix-typo-in-comment-in-surround71.conf.patch 0011-test-latency-print-error-message-when-2-periods-per-.patch 0012-EMU10K1.conf-Don-t-lock-hook-controls.patch 0013-HDA-Intel.conf-Fix-low-mic-volume-due-to-pulseaudio-.patch 0014-alsa-lib-fixed-coverity-reported-issues-under-FORWAR.patch 0015-Fix-compile-warnings.patch 0016-Fix-printf-for-size_t.patch 0018-UCM-fix-memory-leak-when-executing-cset-commands.patch 0019-Specficy-subdevice-0-for-front-surround-of-HDA-Intel.patch 0020-emu10k1.conf-Fix-no-sound-problem-when-using-SB-Live.patch 0021-ctlparse-Respect-softfloat-configure-option.patch 0022-UCM-Fix-typo-in-error-message.patch 0023-UCM-Fix-deadlock-following-failed-get-_verb.patch OBS-URL: https://build.opensuse.org/request/show/72599 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=80
2011-06-03 14:51:39 +02:00
From 516569bbba7eb0e03f2892a67d8559c4d0bcd17a Mon Sep 17 00:00:00 2001
From: Baek Chang <breakchange@gmail.com>
Date: Tue, 3 May 2011 10:52:34 -0700
Subject: [PATCH 18/23] UCM: fix memory leak when executing cset commands
fix memory leak when executing cset commands.
snd_ctl_elem's are allocated, but never free'ed
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
src/ucm/main.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/src/ucm/main.c b/src/ucm/main.c
index 86f29e3..f8ceeeb 100644
--- a/src/ucm/main.c
+++ b/src/ucm/main.c
@@ -173,7 +173,8 @@ static int execute_cset(snd_ctl_t *ctl, char *cset)
pos = strrchr(cset, ' ');
if (pos == NULL) {
uc_error("undefined value for cset >%s<", cset);
- return -EINVAL;
+ err = -EINVAL;
+ goto __fail;
}
*pos = '\0';
err = snd_ctl_ascii_elem_id_parse(id, cset);
@@ -196,6 +197,14 @@ static int execute_cset(snd_ctl_t *ctl, char *cset)
err = 0;
__fail:
*pos = ' ';
+
+ if (id != NULL)
+ free(id);
+ if (value != NULL)
+ free(value);
+ if (info != NULL)
+ free(info);
+
return err;
}
--
1.7.5.3