
On Thu, 11 Mar 2021 at 18:16, Sean Anderson seanga2@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@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@chromium.org