Justin Stitt e0550222e0 printk: cleanup deprecated uses of strncpy/strcpy
Cleanup some deprecated uses of strncpy() and strcpy() [1].

There doesn't seem to be any bugs with the current code but the
readability of this code could benefit from a quick makeover while
removing some deprecated stuff as a benefit.

The most interesting replacement made in this patch involves
concatenating "ttyS" with a digit-led user-supplied string. Instead of
doing two distinct string copies with carefully managed offsets and
lengths, let's use the more robust and self-explanatory scnprintf().
scnprintf will 1) respect the bounds of @buf, 2) null-terminate @buf, 3)
do the concatenation. This allows us to drop the manual NUL-byte assignment.

Also, since isdigit() is used about a dozen lines after the open-coded
version we'll replace it for uniformity's sake.

All the strcpy() --> strscpy() replacements are trivial as the source
strings are literals and much smaller than the destination size. No
behavioral change here.

Use the new 2-argument version of strscpy() introduced in Commit
e6584c3964f2f ("string: Allow 2-argument strscpy()"). However, to make
this work fully (since the size must be known at compile time), also
update the extern-qualified declaration to have the proper size
information.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings [1]
Link: https://github.com/KSPP/linux/issues/90 [2]
Link: https://manpages.debian.org/testing/linux-manual-4.8/strscpy.9.en.html [3]
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Justin Stitt <justinstitt@google.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20240429-strncpy-kernel-printk-printk-c-v1-1-4da7926d7b69@google.com
[pmladek@suse.com: Removed obsolete brackets and added empty lines.]
Signed-off-by: Petr Mladek <pmladek@suse.com>
2024-05-07 10:41:51 +02:00
..
2024-03-11 18:06:04 -07:00
2024-03-12 17:44:08 -07:00
2024-03-12 17:44:08 -07:00
2024-01-18 16:49:34 -08:00
2024-01-10 18:00:18 -08:00
2024-03-11 19:53:15 -07:00
2024-03-11 19:53:15 -07:00
2024-03-12 17:44:08 -07:00
2022-09-26 10:13:13 -07:00
2024-03-11 10:21:06 -07:00
2024-03-11 12:02:50 -07:00
2023-12-23 15:52:13 +01:00
2023-03-24 11:01:29 +01:00
2023-10-19 11:02:48 +02:00
2023-10-09 16:59:47 +10:00
2024-03-01 12:23:37 +01:00
2023-12-01 09:51:44 -08:00
2024-01-09 16:20:17 -08:00
2023-12-12 14:24:14 +01:00
2023-10-30 17:56:53 -10:00
2023-10-04 10:41:57 -07:00
2023-12-29 12:22:29 -08:00
2024-01-09 12:57:46 -08:00
2023-11-01 15:28:33 -10:00
2023-08-15 15:26:17 -07:00
2023-10-11 08:46:01 -07:00