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>
This commit is contained in:
Paolo Bonzini
2019-05-28 12:15:42 +02:00
committed by Junio C Hamano
parent aeb582a983
commit 5731dfce06
2 changed files with 20 additions and 3 deletions

View File

@ -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) {