Skip to content

Commit

Permalink
ASoC: wm8940: fix a memory leak if wm8940_register return error
Browse files Browse the repository at this point in the history
This patch adds checking for wm8940_register return value,
and does kfree(wm8940) if wm8940_register() fail.

Signed-off-by: Axel Lin <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
  • Loading branch information
AxelLin authored and broonie committed Aug 3, 2010
1 parent 62f5ad6 commit db1e18d
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion sound/soc/codecs/wm8940.c
Original file line number Diff line number Diff line change
Expand Up @@ -845,6 +845,7 @@ static void wm8940_unregister(struct wm8940_priv *wm8940)
static int wm8940_i2c_probe(struct i2c_client *i2c,
const struct i2c_device_id *id)
{
int ret;
struct wm8940_priv *wm8940;
struct snd_soc_codec *codec;

Expand All @@ -858,7 +859,11 @@ static int wm8940_i2c_probe(struct i2c_client *i2c,
codec->control_data = i2c;
codec->dev = &i2c->dev;

return wm8940_register(wm8940, SND_SOC_I2C);
ret = wm8940_register(wm8940, SND_SOC_I2C);
if (ret < 0)
kfree(wm8940);

return ret;
}

static int __devexit wm8940_i2c_remove(struct i2c_client *client)
Expand Down

0 comments on commit db1e18d

Please sign in to comment.