diff -r 4dd92a15fcca -r 06ff7ea4f440 mercurial/cext/revlog.c --- a/mercurial/cext/revlog.c Wed Aug 08 23:36:15 2018 -0700 +++ b/mercurial/cext/revlog.c Wed Aug 08 23:41:50 2018 -0700 @@ -991,12 +991,11 @@ if (self->length == self->capacity) { unsigned newcapacity; nodetreenode *newnodes; - if (self->capacity >= INT_MAX / (sizeof(nodetreenode) * 2)) { - PyErr_SetString(PyExc_MemoryError, - "overflow in nt_new"); + newcapacity = self->capacity * 2; + if (newcapacity >= INT_MAX / sizeof(nodetreenode)) { + PyErr_SetString(PyExc_MemoryError, "overflow in nt_new"); return -1; } - newcapacity = self->capacity * 2; newnodes = realloc(self->nodes, newcapacity * sizeof(nodetreenode)); if (newnodes == NULL) { PyErr_SetString(PyExc_MemoryError, "out of memory");