回复: [PATCH] Asoc: core: fix wrong size kzalloc for rtd's components member

lishqchn lishqchn at qq.com
Tue Nov 15 12:15:27 CET 2022


rtd's flexible arrays are typeof struct snd_soc_component *components[]  which means struct_pointer flexible arrays
sizeof(component) will allocate sizeof(struct snd_soc_component), but here only need sizeof(struct snd_soc_component *) 








------------------ 原始邮件 ------------------
发件人:                                                                                                                        "Amadeusz Sławiński"                                                                                    <amadeuszx.slawinski at linux.intel.com>;
发送时间: 2022年11月10日(星期四) 晚上7:02
收件人: "lishqchn"<lishqchn at qq.com>;"perex"<perex at perex.cz>;"tiwai"<tiwai at suse.com>;
抄送: "alsa-devel"<alsa-devel at alsa-project.org>;"broonie"<broonie at kernel.org>;"lgirdwood"<lgirdwood at gmail.com>;"linux-kernel"<linux-kernel at vger.kernel.org>;
主题: Re: [PATCH] Asoc: core: fix wrong size kzalloc for rtd's components member



On 11/8/2022 5:24 AM, lishqchn wrote:
> The actual space for struct snd_soc_component has been allocated by
> snd_soc_register_component, here rtd's components are pointers to
> components, I replace the base size from *component to component.
> 
> Signed-off-by: lishqchn <lishqchn at qq.com>
> ---
>   sound/soc/soc-core.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index a6d6d10cd471..d21e0284b2aa 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -459,7 +459,7 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime(
>   	 */
>   	rtd = devm_kzalloc(dev,
>   			   sizeof(*rtd) +
> -			   sizeof(*component) * (dai_link->num_cpus +
> +			   sizeof(component) * (dai_link->num_cpus +
>   						 dai_link->num_codecs +
>   						 dai_link->num_platforms),
>   			   GFP_KERNEL);

Can't struct_size macro be used instead, it is meant to be used when 
calculating size of structs containing flexible arrays at the end?


More information about the Alsa-devel mailing list