manifest: perform cheap checks before potentially allocating memory
authorAugie Fackler <augie@google.com>
Mon, 12 Nov 2018 20:32:58 -0500
changeset 40601 da4478ca0e32
parent 40600 f27f8e9ef1e7
child 40602 c36175456350
manifest: perform cheap checks before potentially allocating memory Differential Revision: https://phab.mercurial-scm.org/D5258
mercurial/cext/manifest.c
--- 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;