diff options
author | Wenwen Wang <wenwen@cs.uga.edu> | 2019-08-09 23:29:48 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-08-25 10:47:48 +0200 |
commit | 6c4a536ca97bc1bc7df5aa315dc6cad92c84d813 (patch) | |
tree | 6768027893f1d37ef8effbf8f66b42581e1d2cc9 /sound | |
parent | 1bf5f827564c34d034997635b06e2c0b66bedae4 (diff) | |
download | linux-stable-6c4a536ca97bc1bc7df5aa315dc6cad92c84d813.tar.gz linux-stable-6c4a536ca97bc1bc7df5aa315dc6cad92c84d813.tar.bz2 linux-stable-6c4a536ca97bc1bc7df5aa315dc6cad92c84d813.zip |
ALSA: hda - Fix a memory leak bug
commit cfef67f016e4c00a2f423256fc678a6967a9fc09 upstream.
In snd_hda_parse_generic_codec(), 'spec' is allocated through kzalloc().
Then, the pin widgets in 'codec' are parsed. However, if the parsing
process fails, 'spec' is not deallocated, leading to a memory leak.
To fix the above issue, free 'spec' before returning the error.
Fixes: 352f7f914ebb ("ALSA: hda - Merge Realtek parser code to generic parser")
Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/hda_generic.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index 579984ecdec3..eb7461e74a94 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -6082,7 +6082,7 @@ static int snd_hda_parse_generic_codec(struct hda_codec *codec) err = snd_hda_parse_pin_defcfg(codec, &spec->autocfg, NULL, 0); if (err < 0) - return err; + goto error; err = snd_hda_gen_parse_auto_config(codec, &spec->autocfg); if (err < 0) |