bdiff: handle the possibility of overflow when computing allocation size
Differential Revision: https://phab.mercurial-scm.org/D1904
--- a/mercurial/bdiff.c Tue Jan 02 10:09:08 2018 -0700
+++ b/mercurial/bdiff.c Thu Jan 18 14:43:04 2018 +0000
@@ -95,7 +95,7 @@
/* try to allocate a large hash table to avoid collisions */
for (scale = 4; scale; scale /= 2) {
- h = (struct pos *)malloc(scale * buckets * sizeof(struct pos));
+ h = (struct pos *)calloc(buckets, scale * sizeof(struct pos));
if (h)
break;
}