checkpatch: Add warnings for using strn(cat|cpy)
authorSean Anderson <seanga2@gmail.com>
Thu, 11 Mar 2021 05:15:45 +0000 (00:15 -0500)
committerTom Rini <trini@konsulko.com>
Mon, 12 Apr 2021 21:44:55 +0000 (17:44 -0400)
commitd9c305071069164feceaff3e543c61693bc2c401
treeba458cbfbe3747fd097207451e9cf543ca7f2cfd
parent69a752983171c2983fc1f29c7cfa1844f41e5d8b
checkpatch: Add warnings for using strn(cat|cpy)

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>
Reviewed-by: Simon Glass <sjg@chromium.org>
scripts/checkpatch.pl
tools/patman/test_checkpatch.py