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

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.de


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent c42464a4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1432,12 +1432,12 @@ static int wm_adsp_create_control(struct wm_adsp *dsp,
		subname = NULL; /* don't append subname */
		break;
	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,
				wm_adsp_fw_text[dsp->fw], alg_region->alg);
		break;
	default:
		ret = snprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
		ret = scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
				"%s %.12s %x", dsp->name,
				wm_adsp_fw_text[dsp->fw], alg_region->alg);
		break;