summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2011-10-09 11:42:32 +0200
committerAndreas Gruenbacher <agruen@linbit.com>2011-10-11 03:31:57 +0200
commit4e595c3b6de267bfe770c218bb38c116a3d7d59f (patch)
treeb07c94225acebd5036ec9812bf0d8d04d8367aa3 /src
parent46ad06707c71e3bbfc34e5f098745ef5bec3968b (diff)
downloadpatch-4e595c3b6de267bfe770c218bb38c116a3d7d59f.tar.gz
give a diagnostic rather than a failed assertion for a mangled patch
* src/pch.c (another_hunk): Rather than asserting(C), issue the "replacement text or line numbers mangled ..." diagnostic when !C. * tests/mangled-numbers-abort: New test for the above. * tests/Makefile.am (TESTS): Add it. * NEWS: Mention it. Reported by Gabriel Vlasiu via Tim Waugh. See also http://bugzilla.redhat.com/738959
Diffstat (limited to 'src')
-rw-r--r--src/pch.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/pch.c b/src/pch.c
index d07c1aa..6909850 100644
--- a/src/pch.c
+++ b/src/pch.c
@@ -1513,7 +1513,9 @@ another_hunk (enum diff difftype, bool rev)
p_suffix_context = ((ptrn_suffix_context != -1
&& ptrn_suffix_context < context)
? ptrn_suffix_context : context);
- assert (p_prefix_context != -1 && p_suffix_context != -1);
+ if (p_prefix_context == -1 || p_suffix_context == -1)
+ fatal ("replacement text or line numbers mangled in hunk at line %s",
+ format_linenum (numbuf0, p_hunk_beg));
if (difftype == CONTEXT_DIFF
&& (fillcnt