# HG changeset patch # User Jim Hague # Date 2007-10-23 10:39:24 # Node ID 5133e9f61700b9f802018b36ba53c923ba7ad6ad # Parent 60bd4e707a7d652a173c2402fb688221665953ce Fix bdiff test failures on AIX. The test fails when, in the call to calloc(), the number of elements (bn) is 0. In that case, calloc() on AIX will return NULL, while the code expects a valid heap pointer. Both results are permissible under C99, Unix98 etc. Work around by ensuring that at least 1 element is requested. diff --git a/mercurial/bdiff.c b/mercurial/bdiff.c --- a/mercurial/bdiff.c +++ b/mercurial/bdiff.c @@ -245,7 +245,7 @@ static struct hunklist diff(struct line /* allocate and fill arrays */ t = equatelines(a, an, b, bn); - pos = (struct pos *)calloc(bn, sizeof(struct pos)); + pos = (struct pos *)calloc((bn>0)?bn:1, sizeof(struct pos)); /* we can't have more matches than lines in the shorter file */ l.head = l.base = (struct hunk *)malloc(sizeof(struct hunk) * ((an