manifest: perform cheap checks before potentially allocating memory
Differential Revision: https://phab.mercurial-scm.org/D5258
--- a/mercurial/cext/manifest.c Mon Nov 12 20:31:57 2018 -0500
+++ b/mercurial/cext/manifest.c Mon Nov 12 20:32:58 2018 -0500
@@ -137,13 +137,13 @@
return MANIFEST_TOO_SHORT_LINE;
}
next++; /* advance past newline */
- if (!realloc_if_full(self)) {
- return MANIFEST_OOM; /* no memory */
- }
if (prev && strcmp(prev, data) > -1) {
/* This data isn't sorted, so we have to abort. */
return MANIFEST_NOT_SORTED;
}
+ if (!realloc_if_full(self)) {
+ return MANIFEST_OOM; /* no memory */
+ }
l = self->lines + ((self->numlines)++);
l->start = data;
l->len = next - data;