diff --git a/mercurial/cext/revlog.c b/mercurial/cext/revlog.c --- a/mercurial/cext/revlog.c +++ b/mercurial/cext/revlog.c @@ -1092,15 +1092,15 @@ static int nt_init(indexObject *self) { if (self->nt == NULL) { + if ((size_t)self->raw_length > INT_MAX / sizeof(nodetreenode)) { + PyErr_SetString(PyExc_ValueError, "overflow in nt_init"); + return -1; + } self->nt = PyMem_Malloc(sizeof(nodetree)); if (self->nt == NULL) { PyErr_NoMemory(); return -1; } - if ((size_t)self->raw_length > INT_MAX / sizeof(nodetreenode)) { - PyErr_SetString(PyExc_ValueError, "overflow in nt_init"); - return -1; - } self->nt->capacity = self->raw_length < 4 ? 4 : (int)self->raw_length / 2;