[PATCH v2 5/5] checkpatch: Add warnings for using strn(cat|cpy)

Simon Glass sjg at chromium.org
Thu Mar 25 01:38:19 CET 2021


On Thu, 11 Mar 2021 at 18:16, Sean Anderson <seanga2 at gmail.com> wrote:
>
> strn(cat|cpy) has a bad habit of not nul-terminating the destination,
> resulting in constructions like
>
>         strncpy(foo, bar, sizeof(foo) - 1);
>         foo[sizeof(foo) - 1] = '\0';
>
> However, it is very easy to forget about this behavior and accidentally
> leave a string unterminated. This has shown up in some recent coverity
> scans [1, 2] (including code recently touched by yours truly).
>
> Fortunately, the guys at OpenBSD came up with strl(cat|cpy), which always
> nul-terminate strings. These functions are already in U-Boot, so we should
> encourage new code to use them instead of strn(cat|cpy).
>
> [1] https://lists.denx.de/pipermail/u-boot/2021-March/442888.html
> [2] https://lists.denx.de/pipermail/u-boot/2021-January/438073.html
>
> Signed-off-by: Sean Anderson <seanga2 at gmail.com>
> ---
>
> Changes in v2:
> - Move check to u_boot_line
>
>  scripts/checkpatch.pl           |  6 ++++++
>  tools/patman/test_checkpatch.py | 14 +++++++++++++-
>  2 files changed, 19 insertions(+), 1 deletion(-)

Reviewed-by: Simon Glass <sjg at chromium.org>


More information about the U-Boot mailing list