mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 01:32:21 +02:00
strncpy() has been a persistent source of bugs due to its ambiguous intended usage and frequently counter-intuitive semantics: it may not NUL-terminate the destination, and it unconditionally zero-pads to the full length, which isn't always needed. All former callers have been migrated[1] to: - strscpy() for NUL-terminated destinations - strscpy_pad() for NUL-terminated destinations needing zero-padding - strtomem_pad() for non-NUL-terminated fixed-width fields - memcpy_and_pad() for bounded copies with explicit padding - memcpy() for known-length copies Remove the generic implementation, its declaration, the FORTIFY_SOURCE wrapper, and associated tests. Link: https://github.com/KSPP/linux/issues/90 [1] Signed-off-by: Kees Cook <kees@kernel.org> |
||
|---|---|---|
| .. | ||
| .gitignore | ||
| Makefile | ||
| read_overflow-memchr_inv.c | ||
| read_overflow-memchr.c | ||
| read_overflow-memcmp.c | ||
| read_overflow-memscan.c | ||
| read_overflow2_field-memcpy.c | ||
| read_overflow2_field-memmove.c | ||
| read_overflow2-memcmp.c | ||
| read_overflow2-memcpy.c | ||
| read_overflow2-memmove.c | ||
| test_fortify.h | ||
| test_fortify.sh | ||
| write_overflow_field-memcpy.c | ||
| write_overflow_field-memmove.c | ||
| write_overflow_field-memset.c | ||
| write_overflow-memcpy.c | ||
| write_overflow-memmove.c | ||
| write_overflow-memset.c | ||
| write_overflow-strcpy-lit.c | ||
| write_overflow-strcpy.c | ||
| write_overflow-strscpy.c | ||