mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-13 14:14:37 +00:00
7eb10bfbba
`strncpy` is deprecated for use on NUL-terminated destination strings [1]. A suitable replacement is `strscpy` [2] due to the fact that it guarantees NUL-termination on its destination buffer argument which is _not_ always the case for `strncpy`! In this case, though, there was great care taken to ensure that the destination buffer would be NUL-terminated through the use of `len - 1` ensuring that the previously zero-initialized buffer would not overwrite the last NUL byte. This means that there's no bug here. However, `strscpy` will add a mandatory NUL byte to the destination buffer as promised by the following `strscpy` implementation [3]: | /* Hit buffer length without finding a NUL; force NUL-termination. */ | if (res) | dest[res-1] = '\0'; This means we can lose the `- 1` which clears up whats happening here. All the while, we get one step closer to eliminating the ambiguous `strncpy` api in favor of its less ambiguous replacement like `strscpy`, `strscpy_pad`, `strtomem` and `strtomem_pad` amongst others. [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 [3]: https://elixir.bootlin.com/linux/v6.3/source/lib/string.c#L183 Link: https://github.com/KSPP/linux/issues/90 Signed-off-by: Justin Stitt <justinstitt@google.com> Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com> Link: https://lore.kernel.org/r/20230727-sound-soc-fsl-v1-1-4fc0ed7e0366@google.com Signed-off-by: Mark Brown <broonie@kernel.org> |
||
---|---|---|
.. | ||
efika-audio-fabric.c | ||
eukrea-tlv320.c | ||
fsl-asoc-card.c | ||
fsl_asrc.c | ||
fsl_asrc.h | ||
fsl_asrc_common.h | ||
fsl_asrc_dma.c | ||
fsl_aud2htx.c | ||
fsl_aud2htx.h | ||
fsl_audmix.c | ||
fsl_audmix.h | ||
fsl_dma.c | ||
fsl_dma.h | ||
fsl_easrc.c | ||
fsl_easrc.h | ||
fsl_esai.c | ||
fsl_esai.h | ||
fsl_micfil.c | ||
fsl_micfil.h | ||
fsl_mqs.c | ||
fsl_qmc_audio.c | ||
fsl_rpmsg.c | ||
fsl_rpmsg.h | ||
fsl_sai.c | ||
fsl_sai.h | ||
fsl_spdif.c | ||
fsl_spdif.h | ||
fsl_ssi.c | ||
fsl_ssi.h | ||
fsl_ssi_dbg.c | ||
fsl_utils.c | ||
fsl_utils.h | ||
fsl_xcvr.c | ||
fsl_xcvr.h | ||
imx-audio-rpmsg.c | ||
imx-audmix.c | ||
imx-audmux.c | ||
imx-audmux.h | ||
imx-card.c | ||
imx-es8328.c | ||
imx-hdmi.c | ||
imx-pcm-dma.c | ||
imx-pcm-fiq.c | ||
imx-pcm-rpmsg.c | ||
imx-pcm-rpmsg.h | ||
imx-pcm.h | ||
imx-rpmsg.c | ||
imx-sgtl5000.c | ||
imx-spdif.c | ||
imx-ssi.h | ||
Kconfig | ||
Makefile | ||
mpc5200_dma.c | ||
mpc5200_dma.h | ||
mpc5200_psc_ac97.c | ||
mpc5200_psc_i2s.c | ||
mpc8610_hpcd.c | ||
p1022_ds.c | ||
p1022_rdk.c | ||
pcm030-audio-fabric.c |