Re: [PATCH] checkpatch: check return of `git_commit_info`
From: Tamir Duberstein
Date: Mon Dec 09 2024 - 17:30:41 EST
On Wed, Dec 4, 2024 at 1:41 PM Tamir Duberstein <tamird@xxxxxxxxx> wrote:
>
> Avoid string concatenation with an undefined variable when a reference
> to a missing commit is contained in a `Fixes` tag.
>
> Given this patch:
>
> : From: Tamir Duberstein <tamird@xxxxxxxxx>
> : Subject: Test patch
> : Date: Fri, 25 Oct 2024 19:30:51 -0400
> :
> : This is a test patch.
> :
> : Fixes: deadbeef111
> : Signed-off-by: Tamir Duberstein <tamird@xxxxxxxxx>
> : --- /dev/null
> : +++ b/new-file
> : @@ -0,0 +1 @@
> : +Test.
>
> Before:
>
> WARNING: Please use correct Fixes: style 'Fixes: <12 chars of sha1> ("<title line>")' - ie: 'Fixes: ("commit title")'
> WARNING: Unknown commit id 'deadbeef111', maybe rebased or not pulled?
> Use of uninitialized value $cid in concatenation (.) or string at scripts/checkpatch.pl line 3242.
>
> After:
>
> WARNING: Unknown commit id 'deadbeef111', maybe rebased or not pulled?
>
> This patch also reduce duplication slightly.
>
> Signed-off-by: Tamir Duberstein <tamird@xxxxxxxxx>
> ---
> scripts/checkpatch.pl | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 9eed3683ad76caffbbb2418e5dbea7551d374406..14639f83be91643245bba3aea6a980d50c04b1cc 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -3237,12 +3237,12 @@ sub process {
> my ($cid, $ctitle) = git_commit_info($orig_commit, $id,
> $title);
>
> - if ($ctitle ne $title || $tag_case || $tag_space ||
> - $id_length || $id_case || !$title_has_quotes) {
> + if (defined($cid) && ($ctitle ne $title || $tag_case || $tag_space || $id_length || $id_case || !$title_has_quotes)) {
> + my $fixed = "Fixes: $cid (\"$ctitle\")";
> if (WARN("BAD_FIXES_TAG",
> - "Please use correct Fixes: style 'Fixes: <12 chars of sha1> (\"<title line>\")' - ie: 'Fixes: $cid (\"$ctitle\")'\n" . $herecurr) &&
> + "Please use correct Fixes: style 'Fixes: <12 chars of sha1> (\"<title line>\")' - ie: '$fixed'\n" . $herecurr) &&
> $fix) {
> - $fixed[$fixlinenr] = "Fixes: $cid (\"$ctitle\")";
> + $fixed[$fixlinenr] = $fixed;
> }
> }
> }
>
> ---
> base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
> change-id: 20241204-checkpatch-missing-commit-28b591b52dd1
>
> Best regards,
> --
> Tamir Duberstein <tamird@xxxxxxxxx>
Hi Andrew, would you mind having a look at this patch?