# HG changeset patch # User Martin von Zweigbergk # Date 1533796575 25200 # Node ID 4dd92a15fcca1a02a75f55105e4da0dceedecf07 # Parent 4c4825db29e1587c2c00236135d8941cc2452f5f index: move check for too large capacity into nt_init() It's clearer to have the check just before the allocation happens. Differential Revision: https://phab.mercurial-scm.org/D4164 diff -r 4c4825db29e1 -r 4dd92a15fcca mercurial/cext/revlog.c --- a/mercurial/cext/revlog.c Wed Aug 08 22:26:57 2018 -0700 +++ b/mercurial/cext/revlog.c Wed Aug 08 23:36:15 2018 -0700 @@ -1069,6 +1069,10 @@ self->capacity = capacity; self->depth = 0; self->splits = 0; + if ((size_t)self->capacity > INT_MAX / sizeof(nodetreenode)) { + PyErr_SetString(PyExc_ValueError, "overflow in init_nt"); + return -1; + } self->nodes = calloc(self->capacity, sizeof(nodetreenode)); if (self->nodes == NULL) { PyErr_NoMemory(); @@ -1133,10 +1137,6 @@ static int index_init_nt(indexObject *self) { if (self->nt == NULL) { - if ((size_t)self->raw_length > INT_MAX / sizeof(nodetreenode)) { - PyErr_SetString(PyExc_ValueError, "overflow in index_init_nt"); - return -1; - } self->nt = PyMem_Malloc(sizeof(nodetree)); if (self->nt == NULL) { PyErr_NoMemory();