comparison mercurial/cext/revlog.c @ 44500:864e9534d3d4 stable

cext-index: propagate inline_scan error in `index_deref` Before this change, revlog index corruption could be silently ignored in some situation. Differential Revision: https://phab.mercurial-scm.org/D8276
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 12 Mar 2020 15:23:47 +0100
parents f5d2720f3bea
children f8427841c8fc 3122058df7a5
comparison
equal deleted inserted replaced
44499:daf083140b5b 44500:864e9534d3d4
155 if (self->offsets == NULL) { 155 if (self->offsets == NULL) {
156 self->offsets = PyMem_Malloc(self->raw_length * 156 self->offsets = PyMem_Malloc(self->raw_length *
157 sizeof(*self->offsets)); 157 sizeof(*self->offsets));
158 if (self->offsets == NULL) 158 if (self->offsets == NULL)
159 return (const char *)PyErr_NoMemory(); 159 return (const char *)PyErr_NoMemory();
160 inline_scan(self, self->offsets); 160 Py_ssize_t ret = inline_scan(self, self->offsets);
161 if (ret == -1) {
162 return NULL;
163 };
161 } 164 }
162 return self->offsets[pos]; 165 return self->offsets[pos];
163 } 166 }
164 167
165 return (const char *)(self->buf.buf) + pos * v1_hdrsize; 168 return (const char *)(self->buf.buf) + pos * v1_hdrsize;