manifest.c: ensure realloc_if_full() returns 1 or 0
This fixes an MSVC 2008 warning that I don't see with gcc 4.6.3-2:
warning C4047: 'return' :
'bool' differs in levels of indirection from 'line *'
More importantly, the truncation from pointer to 'unsigned char' would have
returned 0 if self->lines pointed to an address divisible by 0xFF, which causes
find_lines() to return MANIFEST_OOM. I was able to cause this to happen in a
trivial program with the gcc compiler.
--- a/mercurial/manifest.c Thu Mar 12 14:20:32 2015 -0700
+++ b/mercurial/manifest.c Fri Mar 13 22:50:40 2015 -0400
@@ -104,7 +104,7 @@
self->maxlines *= 2;
self->lines = realloc(self->lines, self->maxlines * sizeof(line));
}
- return self->lines;
+ return !!self->lines;
}
/*