# HG changeset patch # User Matt Mackall # Date 1383167022 18000 # Node ID 66b21ce60a19287afdcbda8b3a0540a22f8a9535 # Parent 1d7a36ff2615e6e12ce65681db4e07622e7b60d1 bdiff: avoid a memory error on malloc failure diff -r 1d7a36ff2615 -r 66b21ce60a19 mercurial/bdiff.c --- a/mercurial/bdiff.c Wed Oct 23 13:12:48 2013 -0700 +++ b/mercurial/bdiff.c Wed Oct 30 16:03:42 2013 -0500 @@ -303,6 +303,8 @@ struct hunk l, *h; int an, bn, count, pos = 0; + l.next = NULL; + if (!PyArg_ParseTuple(args, "SS:bdiff", &sa, &sb)) return NULL; @@ -312,7 +314,6 @@ if (!a || !b) goto nomem; - l.next = NULL; count = diff(a, an, b, bn, &l); if (count < 0) goto nomem; @@ -344,6 +345,8 @@ Py_ssize_t len = 0, la, lb; PyThreadState *_save; + l.next = NULL; + if (!PyArg_ParseTuple(args, "s#s#:bdiff", &sa, &la, &sb, &lb)) return NULL; @@ -358,7 +361,6 @@ if (!al || !bl) goto nomem; - l.next = NULL; count = diff(al, an, bl, bn, &l); if (count < 0) goto nomem;