# HG changeset patch # User Augie Fackler # Date 1439318980 14400 # Node ID 1ebf4ac075825b90334043b0bb1dab3f52f0edfc # Parent 1ffd97cbf9a2f4bb50903c6040f13bc266a8a95a reachableroots: if allocating a new set fails, use PyErr_NoMemory() My inspection of the implementation of PySet_New() indicates that it does *not* reliably set an exception in the cases where it returns NULL (as far as I can tell it'll never do that!), so let's set that up ourselves. diff -r 1ffd97cbf9a2 -r 1ebf4ac07582 mercurial/parsers.c --- a/mercurial/parsers.c Thu Aug 06 22:11:20 2015 -0700 +++ b/mercurial/parsers.c Tue Aug 11 14:49:40 2015 -0400 @@ -1143,8 +1143,10 @@ /* Initialize return set */ reachable = PySet_New(0); - if (reachable == NULL) + if (reachable == NULL) { + PyErr_NoMemory(); goto bail; + } /* Initialize internal datastructures */ tovisit = (int *)malloc((len + 1) * sizeof(int));