Re: [PATCH v7 15/25] scripts: checkpatch: diagnose uses of `%pA` in the C side

From: Joe Perches
Date: Sun May 22 2022 - 22:17:54 EST


On Mon, 2022-05-23 at 04:01 +0200, Miguel Ojeda wrote:
> The `%pA` format specifier is only intended to be used from Rust.
>
> `checkpatch.pl` already gives a warning for invalid specificers:
>
> WARNING: Invalid vsprintf pointer extension '%pA'
>
> With this change, we introduce an error message with further
> explanation:
>
> ERROR: '%pA' is only intended to be used from Rust code
>
> Suggested-by: Kees Cook <keescook@xxxxxxxxxxxx>
> Co-developed-by: Alex Gaynor <alex.gaynor@xxxxxxxxx>
> Signed-off-by: Alex Gaynor <alex.gaynor@xxxxxxxxx>
> Co-developed-by: Wedson Almeida Filho <wedsonaf@xxxxxxxxxx>
> Signed-off-by: Wedson Almeida Filho <wedsonaf@xxxxxxxxxx>
> Signed-off-by: Miguel Ojeda <ojeda@xxxxxxxxxx>

How many developers are required for a trivial patch?

> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -6784,6 +6784,10 @@ sub process {
> my $stat_real = get_stat_real($linenr, $lc);
> my $ext_type = "Invalid";
> my $use = "";
> + if ($bad_specifier =~ /pA/) {
> + ERROR("VSPRINTF_RUST",
> + "'\%pA' is only intended to be used from Rust code\n" . "$here\n$stat_real\n");
> + }
> if ($bad_specifier =~ /p[Ff]/) {

and this should now use elsif

> $use = " - use %pS instead";
> $use =~ s/pS/ps/ if ($bad_specifier =~ /pf/);