diff options
author | Shen Lichuan <shenlichuan@vivo.com> | 2024-08-26 07:44:02 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2024-08-26 16:52:35 +0200 |
commit | 69a8d0edb9d78bb5515133b7c08f399d6eaff37a (patch) | |
tree | 9ffe710a62b44505f4d36792a014d41c399bca23 /sound/soc/sof | |
parent | ASoC: MAINTAINERS: Drop incorrect tlv320aic31xx.txt path (diff) | |
download | linux-69a8d0edb9d78bb5515133b7c08f399d6eaff37a.tar.xz linux-69a8d0edb9d78bb5515133b7c08f399d6eaff37a.zip |
ASoC: SOF: topology: Use kmemdup_array instead of kmemdup for multiple allocation
Let the kmemdup_array() take care about multiplication
and possible overflows.
Using kmemdup_array() is more appropriate and makes the code
easier to audit.
Signed-off-by: Shen Lichuan <shenlichuan@vivo.com>
Link: https://patch.msgid.link/20240826054402.58396-1-shenlichuan@vivo.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof')
-rw-r--r-- | sound/soc/sof/topology.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c index b54382131991..996c3234eaee 100644 --- a/sound/soc/sof/topology.c +++ b/sound/soc/sof/topology.c @@ -1349,7 +1349,7 @@ static int sof_parse_pin_binding(struct snd_sof_widget *swidget, /* copy pin binding array to swidget only if it is defined in topology */ if (pin_binding[0]) { - pb = kmemdup(pin_binding, num_pins * sizeof(char *), GFP_KERNEL); + pb = kmemdup_array(pin_binding, num_pins, sizeof(char *), GFP_KERNEL); if (!pb) { ret = -ENOMEM; goto err; @@ -1889,9 +1889,9 @@ static int sof_link_load(struct snd_soc_component *scomp, int index, struct snd_ return -ENOMEM; slink->num_hw_configs = le32_to_cpu(cfg->num_hw_configs); - slink->hw_configs = kmemdup(cfg->hw_config, - sizeof(*slink->hw_configs) * slink->num_hw_configs, - GFP_KERNEL); + slink->hw_configs = kmemdup_array(cfg->hw_config, + slink->num_hw_configs, sizeof(*slink->hw_configs), + GFP_KERNEL); if (!slink->hw_configs) { kfree(slink); return -ENOMEM; |