diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2019-05-28 12:15:42 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-05-28 22:06:21 +0200 |
commit | 5731dfce06a19f59aa1be2bd2120584864d8983b (patch) | |
tree | 00ef6426fde686327d1928d840e8da1639c9cb46 /git-request-pull.sh | |
parent | mingw: allow building with an MSYS2 runtime v3.x (diff) | |
download | git-5731dfce06a19f59aa1be2bd2120584864d8983b.tar.xz git-5731dfce06a19f59aa1be2bd2120584864d8983b.zip |
request-pull: quote regex metacharacters in local ref
The local part of the third argument of git-request-pull is used in
a regular expression without quoting it. Use qr{} and \Q\E to ensure
that e.g. a period in a tag name does not match any character on the
remote side.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-request-pull.sh')
-rwxr-xr-x | git-request-pull.sh | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/git-request-pull.sh b/git-request-pull.sh index 13c172bd94..0d128be7fd 100755 --- a/git-request-pull.sh +++ b/git-request-pull.sh @@ -83,19 +83,18 @@ die "fatal: No commits in common between $base and $head" # Otherwise find a random ref that matches $headrev. find_matching_ref=' my ($head,$headrev) = (@ARGV); + my $pattern = qr{/\Q$head\E$}; my ($found); while (<STDIN>) { chomp; my ($sha1, $ref, $deref) = /^(\S+)\s+([^^]+)(\S*)$/; - my ($pattern); next unless ($sha1 eq $headrev); - $pattern="/$head\$"; if ($ref eq $head) { $found = $ref; } - if ($ref =~ /$pattern/) { + if ($ref =~ $pattern) { $found = $ref; } if ($sha1 eq $head) { |