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

From: Amadeusz Sławiński
Date: Thu Nov 10 2022 - 06:03:04 EST


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@xxxxxx>
---
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?