aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-03-22 03:30:20 -0400
committerTakashi Iwai <tiwai@suse.de>2010-03-22 03:30:20 -0400
commitbae84e70d66fe46c12231082cf1c4848ea22f3ef (patch)
treec0994ef3f0e306583c5619da8fd6498fd932dd24 /sound/pci/hda/patch_realtek.c
parentea823c08912cfb6d4af2fa8b6dd5d8deb2fb486a (diff)
ALSA: hda - Fix access-after-free in patch_realtek.c
alc_free_kctls() has to be called after all jobs done in alc_build_controls(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r--sound/pci/hda/patch_realtek.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 4ec57633af88..053d53d8c8b2 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -2532,8 +2532,6 @@ static int alc_build_controls(struct hda_codec *codec)
2532 return err; 2532 return err;
2533 } 2533 }
2534 2534
2535 alc_free_kctls(codec); /* no longer needed */
2536
2537 /* assign Capture Source enums to NID */ 2535 /* assign Capture Source enums to NID */
2538 kctl = snd_hda_find_mixer_ctl(codec, "Capture Source"); 2536 kctl = snd_hda_find_mixer_ctl(codec, "Capture Source");
2539 if (!kctl) 2537 if (!kctl)
@@ -2602,6 +2600,9 @@ static int alc_build_controls(struct hda_codec *codec)
2602 } 2600 }
2603 } 2601 }
2604 } 2602 }
2603
2604 alc_free_kctls(codec); /* no longer needed */
2605
2605 return 0; 2606 return 0;
2606} 2607}
2607 2608