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> |
||
|---|---|---|
| .. | ||
| basic | ||
| coccinelle | ||
| dtc | ||
| kconfig | ||
| .gitignore | ||
| Kbuild.include | ||
| Kconfig.include | ||
| Lindent | ||
| Makefile | ||
| Makefile.autoconf | ||
| Makefile.build | ||
| Makefile.clean | ||
| Makefile.extrawarn | ||
| Makefile.host | ||
| Makefile.lib | ||
| Makefile.spl | ||
| Makefile.uncmd_spl | ||
| bin2c.c | ||
| binutils-version.sh | ||
| build-whitelist.sh | ||
| build_OID_registry | ||
| check-config.sh | ||
| checkpatch.pl | ||
| checkstack.pl | ||
| cleanpatch | ||
| coccicheck | ||
| config_whitelist.txt | ||
| const_structs.checkpatch | ||
| coreboot.sed | ||
| decodecode | ||
| documentation-file-ref-check | ||
| gcc-stack-usage.sh | ||
| gcc-version.sh | ||
| get_default_envs.sh | ||
| get_maintainer.pl | ||
| kernel-doc | ||
| ld-version.sh | ||
| mailmapper | ||
| mkmakefile | ||
| objdiff | ||
| setlocalversion | ||
| show-gnu-make | ||
| spelling.txt | ||