ALSA: hda/ca0132 - Fix memory leak at error path
authorTakashi Iwai <tiwai@suse.de>
Mon, 4 Sep 2017 15:38:36 +0000 (17:38 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 4 Sep 2017 15:42:27 +0000 (17:42 +0200)
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>
sound/pci/hda/patch_ca0132.c

index a148176c16a98acccad573a20baade15520f83d1..3e73d5c6ccfc95155d79557d0a5292f865afe777 100644 (file)
@@ -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;
 }
 
 /*