diff tests/test-import.t @ 16650:fcb97d9a26cd stable

patch: fix segfault against unified diffs which start line is zero Since 2b1ec74c961f, if a chunk starts with "@@ -0,1", oldstart turns into a negative value. Because diffhelpers.testhunk() doesn't expect negative bstart, it bypasses "alen > blen - bstart" condition and segfaults at "PyList_GET_ITEM(b, i + bstart)".
author Yuya Nishihara <yuya@tcha.org>
date Sat, 12 May 2012 16:10:01 +0900
parents 0e0060bf2f44
children 040b8c08b6c0
line wrap: on
line diff
--- a/tests/test-import.t	Fri May 11 22:48:19 2012 -0700
+++ b/tests/test-import.t	Sat May 12 16:10:01 2012 +0900
@@ -997,6 +997,26 @@
   c3
   c4
 
+no segfault while importing a unified diff which start line is zero but chunk
+size is non-zero
+
+  $ hg init startlinezero
+  $ cd startlinezero
+  $ echo foo > foo
+  $ hg commit -Amfoo
+  adding foo
+
+  $ hg import --no-commit - << EOF
+  > diff a/foo b/foo
+  > --- a/foo
+  > +++ b/foo
+  > @@ -0,1 +0,1 @@
+  >  foo
+  > EOF
+  applying patch from stdin
+
+  $ cd ..
+
 Test corner case involving fuzz and skew
 
   $ hg init morecornercases