[alsa-devel] [patch] ASoC: dapm: using freed pointer in dapm_kcontrol_add_widget()
Lars-Peter Clausen
lars at metafoo.de
Wed Jul 31 11:02:45 CEST 2013
On 07/31/2013 10:52 AM, Dan Carpenter wrote:
> There is a typo here so we end up using the old freed pointer instead of
> the newly allocated one. (If the "n" is zero then the code works,
> obviously).
>
> Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
Thanks.
Acked-by: Lars-Peter Clausen <lars at metafoo.de>
Olof, can you check whether this fixes the crash you see?
> ---
> Only needed in linux-next
>
> diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
> index 9abb3b2..d74c356 100644
> --- a/sound/soc/soc-dapm.c
> +++ b/sound/soc/soc-dapm.c
> @@ -225,13 +225,13 @@ static int dapm_kcontrol_add_widget(struct snd_kcontrol *kcontrol,
>
> new_data = krealloc(data, sizeof(*data) + sizeof(widget) * n,
> GFP_KERNEL);
> - if (!data)
> + if (!new_data)
> return -ENOMEM;
>
> - data->wlist.widgets[n - 1] = widget;
> - data->wlist.num_widgets = n;
> + new_data->wlist.widgets[n - 1] = widget;
> + new_data->wlist.num_widgets = n;
>
> - kcontrol->private_data = data;
> + kcontrol->private_data = new_data;
>
> return 0;
> }
>
More information about the Alsa-devel
mailing list