[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cce17be6-acdf-9737-f2cb-3559712e4c56@linux.intel.com>
Date: Wed, 26 Jul 2023 09:49:07 +0200
From: Amadeusz Sławiński
<amadeuszx.slawinski@...ux.intel.com>
To: justinstitt@...gle.com,
Cezary Rojewski <cezary.rojewski@...el.com>,
Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>,
Liam Girdwood <liam.r.girdwood@...ux.intel.com>,
Peter Ujfalusi <peter.ujfalusi@...ux.intel.com>,
Bard Liao <yung-chuan.liao@...ux.intel.com>,
Ranjani Sridharan <ranjani.sridharan@...ux.intel.com>,
Kai Vehmanen <kai.vehmanen@...ux.intel.com>,
Mark Brown <broonie@...nel.org>,
Jaroslav Kysela <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>
Cc: alsa-devel@...a-project.org, linux-kernel@...r.kernel.org,
Kees Cook <keescook@...omium.org>,
Nathan Chancellor <nathan@...nel.org>
Subject: Re: [PATCH] ASoC: intel: avs: refactor strncpy usage in topology
On 7/26/2023 12:08 AM, justinstitt@...gle.com wrote:
> `strncpy` is deprecated for use on NUL-terminated destination strings
> [1].
>
> A suitable replacement is `strscpy` [2].
>
> There are some hopes that someday the `strncpy` api could be ripped out
> due to the vast number of suitable replacements (strscpy, strscpy_pad,
> strtomem, strtomem_pad, strlcpy) [1].
>
> [1]: www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings
> [2]: manpages.debian.org/testing/linux-manual-4.8/strscpy.9.en.html
>
> ---
>
>
> Link: https://github.com/KSPP/linux/issues/90
> Signed-off-by: Justin Stitt <justinstitt@...gle.com>
> ---
> sound/soc/intel/avs/topology.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/sound/soc/intel/avs/topology.c b/sound/soc/intel/avs/topology.c
> index cdb4ec500261..45d0eb2a8e71 100644
> --- a/sound/soc/intel/avs/topology.c
> +++ b/sound/soc/intel/avs/topology.c
> @@ -1388,12 +1388,12 @@ static int avs_route_load(struct snd_soc_component *comp, int index,
> port = __ffs(mach->mach_params.i2s_link_mask);
>
> snprintf(buf, len, route->source, port);
> - strncpy((char *)route->source, buf, len);
> + strscpy((char *)route->source, buf, len);
> snprintf(buf, len, route->sink, port);
> - strncpy((char *)route->sink, buf, len);
> + strscpy((char *)route->sink, buf, len);
> if (route->control) {
> snprintf(buf, len, route->control, port);
> - strncpy((char *)route->control, buf, len);
> + strscpy((char *)route->control, buf, len);
> }
> }
>
>
In this case snprintf adds NUL at the end and we strncpy using same
size, so there should always be NUL at the end, so replacing it with
strscpy shouldn't really change anything, so
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@...ux.intel.com>
Powered by blists - more mailing lists