Re: [PATCH v4] Added warnings in checkpatch.pl script to :
From: Joe Perches
Date: Tue Jul 09 2019 - 12:10:21 EST
On Tue, 2019-07-09 at 21:18 +0530, NitinGote wrote:
> From: Nitin Gote <nitin.r.gote@xxxxxxxxx>
>
> 1. Deprecate strcpy() in favor of strscpy().
> 2. Deprecate strlcpy() in favor of strscpy().
> 3. Deprecate strncpy() in favor of strscpy() or strscpy_pad().
>
> Updated strncpy() section in Documentation/process/deprecated.rst
> to cover strscpy_pad() case.
Please slow down your patch submission rate for
this instance and respond appropriately to the
comments you've been given.
This stuff is not critical bug fixing.
The subject could be something like:
Subject: [PATCH v#] Documentation/checkpatch: Prefer strscpy over strcpy/strlcpy
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -605,6 +605,20 @@ foreach my $entry (keys %deprecated_apis) {
> }
> $deprecated_apis_search = "(?:${deprecated_apis_search})";
>
> +our %deprecated_string_apis = (
> + "strcpy" => "strscpy",
> + "strlcpy" => "strscpy",
> + "strncpy" => "strscpy, strscpy_pad or for non-NUL-terminated strings, strncpy() can still be used, but destinations should be marked with the __nonstring",
'the' is not necessary.
There could likely also be a strscat created for
strcat, strlcat and strncat.
btw:
There were several defects in the kernel for misuses
of strlcpy.
Did you or anyone else have an opinion on stracpy
to avoid duplicating the first argument in a
sizeof()?
strlcpy(foo, bar, sizeof(foo))
to
stracpy(foo, bar)
where foo must be char array compatible ?
https://lore.kernel.org/lkml/d1524130f91d7cfd61bc736623409693d2895f57.camel@xxxxxxxxxxx/