]> Sergey Matveev's repositories - public-inbox.git/commitdiff
searchidx: do not modify read-only $1 via git_unquote
authorEric Wong <e@80x24.org>
Sun, 15 Dec 2019 03:37:56 +0000 (03:37 +0000)
committerEric Wong <e@80x24.org>
Sun, 15 Dec 2019 06:32:00 +0000 (06:32 +0000)
git_unquote works in-place, and we sometimes see strange
filenames, or badly munged diffs with terminal escape
characters (for colorization) end up in emails.

lib/PublicInbox/SearchIdx.pm

index f265fa7f27ae7ed3cb0baa7f8e4fd7215adb3e9d..926fac803264288cf3a298b68c08cba62a59dfec 100644 (file)
@@ -204,11 +204,13 @@ sub index_diff ($$$) {
                        $in_diff = $self->index_old_diff_fn(\%seen, $fa, $fb,
                                                        $xnq);
                } elsif (m!^--- ("?a/.+)!) {
-                       my $fn = (split('/', git_unquote($1), 2))[1];
+                       my $fn = $1;
+                       $fn = (split('/', git_unquote($fn), 2))[1];
                        $seen{$fn}++ or $self->index_diff_inc($fn, 'XDFN', $xnq);
                        $in_diff = 1;
                } elsif (m!^\+\+\+ ("?b/.+)!)  {
-                       my $fn = (split('/', git_unquote($1), 2))[1];
+                       my $fn = $1;
+                       $fn = (split('/', git_unquote($fn), 2))[1];
                        $seen{$fn}++ or $self->index_diff_inc($fn, 'XDFN', $xnq);
                        $in_diff = 1;
                } elsif (/^--- (\S+)/) {