Commit 57819429 authored by Takashi Iwai's avatar Takashi Iwai Committed by Mark Brown

ASoC: wm_adsp: Use scnprintf() for the limited buffer output

snprintf() is a hard-to-use function, it's especially difficult to use
it for concatenating substrings in a buffer with a limited size.
Since snprintf() returns the would-be-output size, not the actual
size, the subsequent use of snprintf() may point to the incorrect
position.

Use scnprintf() instead for fixing such potential errors.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Acked-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20200313130334.9028-1-tiwai@suse.deSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent c42464a4
...@@ -1432,12 +1432,12 @@ static int wm_adsp_create_control(struct wm_adsp *dsp, ...@@ -1432,12 +1432,12 @@ static int wm_adsp_create_control(struct wm_adsp *dsp,
subname = NULL; /* don't append subname */ subname = NULL; /* don't append subname */
break; break;
case 2: case 2:
ret = snprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN, ret = scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
"%s%c %.12s %x", dsp->name, *region_name, "%s%c %.12s %x", dsp->name, *region_name,
wm_adsp_fw_text[dsp->fw], alg_region->alg); wm_adsp_fw_text[dsp->fw], alg_region->alg);
break; break;
default: default:
ret = snprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN, ret = scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
"%s %.12s %x", dsp->name, "%s %.12s %x", dsp->name,
wm_adsp_fw_text[dsp->fw], alg_region->alg); wm_adsp_fw_text[dsp->fw], alg_region->alg);
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment