diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-01-20 20:28:51 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-20 20:28:51 -0800 |
commit | 41905647fc6c94632b48b7caf65eaf3ae18f6d70 (patch) | |
tree | be9411ef291bc2d6eeeb98f87d89239776d3bca9 | |
parent | 06dbc1ea5768618337bf11e5f64c4f9f14a68008 (diff) | |
parent | da915939fd7523cd145ba280cc974d46aa792331 (diff) | |
download | git-41905647fc6c94632b48b7caf65eaf3ae18f6d70.tar.gz |
Merge branch 'ag/patch-header-verify'
* ag/patch-header-verify:
builtin-apply.c: fix the --- and +++ header filename consistency check
-rw-r--r-- | builtin-apply.c | 2 | ||||
-rwxr-xr-x | t/t4133-apply-filenames.sh | 38 |
2 files changed, 39 insertions, 1 deletions
diff --git a/builtin-apply.c b/builtin-apply.c index b99db0b800..2a1004d025 100644 --- a/builtin-apply.c +++ b/builtin-apply.c @@ -692,7 +692,7 @@ static char *gitdiff_verify_name(const char *line, int isnull, char *orig_name, if (isnull) die("git apply: bad git-diff - expected /dev/null, got %s on line %d", name, linenr); another = find_name(line, NULL, p_value, TERM_TAB); - if (!another || memcmp(another, name, len)) + if (!another || memcmp(another, name, len + 1)) die("git apply: bad git-diff - inconsistent %s filename on line %d", oldnew, linenr); free(another); return orig_name; diff --git a/t/t4133-apply-filenames.sh b/t/t4133-apply-filenames.sh new file mode 100755 index 0000000000..34218071b6 --- /dev/null +++ b/t/t4133-apply-filenames.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# +# Copyright (c) 2010 Andreas Gruenbacher +# + +test_description='git apply filename consistency check' + +. ./test-lib.sh + +test_expect_success setup ' + cat > bad1.patch <<EOF +diff --git a/f b/f +new file mode 100644 +index 0000000..d00491f +--- /dev/null ++++ b/f-blah +@@ -0,0 +1 @@ ++1 +EOF + cat > bad2.patch <<EOF +diff --git a/f b/f +deleted file mode 100644 +index d00491f..0000000 +--- b/f-blah ++++ /dev/null +@@ -1 +0,0 @@ +-1 +EOF +' + +test_expect_success 'apply diff with inconsistent filenames in headers' ' + test_must_fail git apply bad1.patch 2>err + grep "inconsistent new filename" err + test_must_fail git apply bad2.patch 2>err + grep "inconsistent old filename" err +' + +test_done |