=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/sort/Attic/msort.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- src/usr.bin/sort/Attic/msort.c 2006/10/28 21:14:29 1.16 +++ src/usr.bin/sort/Attic/msort.c 2006/10/29 18:40:34 1.17 @@ -1,4 +1,4 @@ -/* $OpenBSD: msort.c,v 1.16 2006/10/28 21:14:29 naddy Exp $ */ +/* $OpenBSD: msort.c,v 1.17 2006/10/29 18:40:34 millert Exp $ */ /*- * Copyright (c) 1993 @@ -36,7 +36,7 @@ #if 0 static char sccsid[] = "@(#)msort.c 8.1 (Berkeley) 6/6/93"; #else -static char rcsid[] = "$OpenBSD: msort.c,v 1.16 2006/10/28 21:14:29 naddy Exp $"; +static char rcsid[] = "$OpenBSD: msort.c,v 1.17 2006/10/29 18:40:34 millert Exp $"; #endif #endif /* not lint */ @@ -87,14 +87,14 @@ } i = min(16, nfiles) * LALIGN(MAXLLEN+sizeof(TMFILE)); - if (!buffer || i > BUFSIZE) { - buffer = buffer ? realloc(buffer, i) : malloc(i); + if (i > bufsize) { + do { + bufsize *= 2; + } while (i > bufsize); + buffer = realloc(buffer, bufsize); if (!buffer) errx(2, "cannot allocate memory"); - if (!SINGL_FLD) { - if ((linebuf = malloc(MAXLLEN)) == NULL) - errx(2, "cannot allocate memory"); - } + bufend = buffer + bufsize - 1; } if (binno >= 0) @@ -253,14 +253,14 @@ int c; RECHEADER *crec, *prec, *trec; - if (!SINGL_FLD) { - if ((linebuf = malloc(MAXLLEN)) == NULL) - errx(2, "cannot allocate memory"); + if (bufsize < 2 * ALIGN(MAXLLEN + sizeof(TRECHEADER))) { + do { + bufsize *= 2; + } while (bufsize < 2 * ALIGN(MAXLLEN + sizeof(TRECHEADER))); + if ((buffer = realloc(buffer, bufsize)) == NULL) + err(2, NULL); + bufend = buffer + bufsize - 1; } - buffer = malloc(2 * ALIGN((MAXLLEN + sizeof(TRECHEADER)))); - if (buffer == NULL) - errx(2, "cannot allocate memory"); - crec = (RECHEADER *) buffer; crec_end = ((char *)crec) + ALIGN(MAXLLEN + sizeof(TRECHEADER)); prec = (RECHEADER *) crec_end;