about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2020-01-04 04:19:33 +0000
committerEric Wong <e@80x24.org>2020-01-04 04:19:42 +0000
commitaa1e96cd44f6d5cd77a96648ac1f2dbcca9dc367 (patch)
treec40a5be2c2f47106d66cb08ceaf5158eb5d7ed8a
parent0563ed29d37ae46733e3001f390bb9a1c5b04d6b (diff)
downloadpublic-inbox-aa1e96cd44f6d5cd77a96648ac1f2dbcca9dc367.tar.gz
While filenames are escaped, the actual diff contents may
contain an unescaped "\r" carriage return byte not in front
of the "\n" line feed.  So just allow "\r" to appear in the
middle of a line.
-rw-r--r--lib/PublicInbox/SolverGit.pm2
-rw-r--r--xt/solver.t2
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/PublicInbox/SolverGit.pm b/lib/PublicInbox/SolverGit.pm
index eab8459b..5ac27988 100644
--- a/lib/PublicInbox/SolverGit.pm
+++ b/lib/PublicInbox/SolverGit.pm
@@ -155,7 +155,7 @@ sub extract_diff ($$) {
                 # the meat of the diff, including "^\\No newline ..."
                 # We also allow for totally blank lines w/o leading spaces,
                 # because git-apply(1) handles that case, too
-                (?:^(?:[\@\+\x20\-\\][^\r\n]*|)$LF)+
+                (?:^(?:[\@\+\x20\-\\][^\n]*|)$LF)+
         )!smx or return;
 
         my $di = {
diff --git a/xt/solver.t b/xt/solver.t
index e9f24e7f..4ff57fe7 100644
--- a/xt/solver.t
+++ b/xt/solver.t
@@ -20,6 +20,8 @@ my $app = sub {
 # TODO: convert these to self-contained test cases
 my $todo = {
         'git' => [
+                '9e9048b02bd04d287461543d85db0bb715b89f8c'
+                        .'/s/?b=t%2Ft3420%2Fremove-ids.sed',
                 'eebf7a8/s/?b=t%2Ftest-lib.sh',
                 'eb580ca513/s/?b=remote-odb.c',
                 '776fa90f7f/s/?b=contrib/git-jump/git-jump',