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>
diff --git a/git-request-pull.sh b/git-request-pull.sh
index 13c172b..0d128be 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -83,19 +83,18 @@
# 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) {