Mercurial > hg
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; |