Skip to content

Commit 13e4541

Browse files
mrinal-pandeytorvalds
authored andcommitted
checkpatch: fix the usage of capture group ( ... )
The usage of "capture group (...)" in the immediate condition after `&&` results in `$1` being uninitialized. This issues a warning "Use of uninitialized value $1 in regexp compilation at ./scripts/checkpatch.pl line 2638". I noticed this bug while running checkpatch on the set of commits from v5.7 to v5.8-rc1 of the kernel on the commits with a diff content in their commit message. This bug was introduced in the script by commit e518e9a ("checkpatch: emit an error when there's a diff in a changelog"). It has been in the script since then. The author intended to store the match made by capture group in variable `$1`. This should have contained the name of the file as `[\w/]+` matched. However, this couldn't be accomplished due to usage of capture group and `$1` in the same regular expression. Fix this by placing the capture group in the condition before `&&`. Thus, `$1` can be initialized to the text that capture group matches thereby setting it to the desired and required value. Fixes: e518e9a ("checkpatch: emit an error when there's a diff in a changelog") Signed-off-by: Mrinal Pandey <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Tested-by: Lukas Bulwahn <[email protected]> Reviewed-by: Lukas Bulwahn <[email protected]> Cc: Joe Perches <[email protected]> Link: https://lkml.kernel.org/r/20200714032352.f476hanaj2dlmiot@mrinalpandey Signed-off-by: Linus Torvalds <[email protected]>
1 parent b0daa2c commit 13e4541

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

scripts/checkpatch.pl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2639,8 +2639,8 @@ sub process {
26392639

26402640
# Check if the commit log has what seems like a diff which can confuse patch
26412641
if ($in_commit_log && !$commit_log_has_diff &&
2642-
(($line =~ m@^\s+diff\b.*a/[\w/]+@ &&
2643-
$line =~ m@^\s+diff\b.*a/([\w/]+)\s+b/$1\b@) ||
2642+
(($line =~ m@^\s+diff\b.*a/([\w/]+)@ &&
2643+
$line =~ m@^\s+diff\b.*a/[\w/]+\s+b/$1\b@) ||
26442644
$line =~ m@^\s*(?:\-\-\-\s+a/|\+\+\+\s+b/)@ ||
26452645
$line =~ m/^\s*\@\@ \-\d+,\d+ \+\d+,\d+ \@\@/)) {
26462646
ERROR("DIFF_IN_COMMIT_MSG",

0 commit comments

Comments
 (0)