summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2017-09-04 17:38:36 +0200
committerTakashi Iwai <tiwai@suse.de>2017-09-04 17:42:27 +0200
commitcc91ceaf3efd9a2364463b5f85d9f391f1ddaa9d (patch)
tree41cfda3d5a464f76dae22ad2d57d4a09924fdf87
parent284b4c9289766c6294d4c6292aea565f78215b0e (diff)
downloadlinux-cc91ceaf3efd9a2364463b5f85d9f391f1ddaa9d.tar.gz
linux-cc91ceaf3efd9a2364463b5f85d9f391f1ddaa9d.tar.bz2
linux-cc91ceaf3efd9a2364463b5f85d9f391f1ddaa9d.zip
ALSA: hda/ca0132 - Fix memory leak at error path
The CA0132 codec driver doesn't call the free function at its error path of the probe, which leaves the allocated memory. Call ca0132_free() properly at the error handling. Fixes: a73d511c4867 ("ALSA: hda/ca0132: Add unsol handler for DSP and jack detection") Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_ca0132.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c
index a148176c16a9..3e73d5c6ccfc 100644
--- a/sound/pci/hda/patch_ca0132.c
+++ b/sound/pci/hda/patch_ca0132.c
@@ -4774,13 +4774,17 @@ static int patch_ca0132(struct hda_codec *codec)
err = ca0132_prepare_verbs(codec);
if (err < 0)
- return err;
+ goto error;
err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, NULL);
if (err < 0)
- return err;
+ goto error;
return 0;
+
+ error:
+ ca0132_free(codec);
+ return err;
}
/*