[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