Skip to content

Commit

Permalink
ALSA: hda - Fix memory leaks in the previous patch
Browse files Browse the repository at this point in the history
The previous hack for replacing the codec name give memory leaks at
error paths.  This patch fixes them.

Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
tiwai committed Dec 3, 2009
1 parent 274693f commit ac2c92e
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions sound/pci/hda/patch_realtek.c
Original file line number Diff line number Diff line change
Expand Up @@ -13459,8 +13459,10 @@ static int patch_alc269(struct hda_codec *codec)
if ((alc_read_coef_idx(codec, 0) & 0x00f0) == 0x0010){
kfree(codec->chip_name);
codec->chip_name = kstrdup("ALC259", GFP_KERNEL);
if (!codec->chip_name)
if (!codec->chip_name) {
alc_free(codec);
return -ENOMEM;
}
}

board_config = snd_hda_check_board_config(codec, ALC269_MODEL_LAST,
Expand Down Expand Up @@ -17465,8 +17467,10 @@ static int patch_alc662(struct hda_codec *codec)
if (alc_read_coef_idx(codec, 0)==0x8020){
kfree(codec->chip_name);
codec->chip_name = kstrdup("ALC661", GFP_KERNEL);
if (!codec->chip_name)
if (!codec->chip_name) {
alc_free(codec);
return -ENOMEM;
}
}

board_config = snd_hda_check_board_config(codec, ALC662_MODEL_LAST,
Expand Down Expand Up @@ -17540,13 +17544,13 @@ static int patch_alc888(struct hda_codec *codec)
if ((alc_read_coef_idx(codec, 0) & 0x00f0)==0x0030){
kfree(codec->chip_name);
codec->chip_name = kstrdup("ALC888-VD", GFP_KERNEL);
if (!codec->chip_name)
if (!codec->chip_name) {
alc_free(codec);
return -ENOMEM;
patch_alc662(codec);
} else {
patch_alc882(codec);
}
return patch_alc662(codec);
}
return 0;
return patch_alc882(codec);
}

/*
Expand Down

0 comments on commit ac2c92e

Please sign in to comment.