From 9f00ccd37adf049f01d6d72c210a0abcbc51077c Mon Sep 17 00:00:00 2001 From: "Pedro F. Giffuni" Date: Thu, 12 Jun 2014 19:01:57 +0000 Subject: [PATCH] Avoid zeroing during allocation. This change reverts a change from OpenBSD which made use of calloc, and therefore wasted time initializing arrays that will later be realloc'ed. Consistently use FreeBSD's reallocf(). While here also merge the changes from OpenBSD's manpage patch.1 Rev 1.27: "patch was moved from user portability (UP) to base in issue 7 and is no longer optional" MFC after: 1 week --- usr.bin/patch/patch.1 | 13 +++++-------- usr.bin/patch/pch.c | 20 ++++++-------------- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/usr.bin/patch/patch.1 b/usr.bin/patch/patch.1 index 587b166eb10..36ba860c96c 100644 --- a/usr.bin/patch/patch.1 +++ b/usr.bin/patch/patch.1 @@ -19,9 +19,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $OpenBSD: patch.1,v 1.26 2010/09/03 11:09:29 jmc Exp $ +.\" $OpenBSD: patch.1,v 1.27 2014/04/15 06:26:54 jmc Exp $ .\" $FreeBSD$ -.Dd January 29, 2013 +.Dd June 12, 2014 .Dt PATCH 1 .Os .Sh NAME @@ -639,13 +639,10 @@ The .Nm utility is compliant with the .St -p1003.1-2008 -specification -(except as detailed above for the +specification, +except as detailed above for the .Fl -posix -option), -though the presence of -.Nm -itself is optional. +option. .Pp The flags .Op Fl BCEFfstVvxz diff --git a/usr.bin/patch/pch.c b/usr.bin/patch/pch.c index eca12ad06f8..2ca528adaee 100644 --- a/usr.bin/patch/pch.c +++ b/usr.bin/patch/pch.c @@ -132,11 +132,11 @@ void set_hunkmax(void) { if (p_line == NULL) - p_line = calloc((size_t) hunkmax, sizeof(char *)); + p_line = malloc((size_t) hunkmax * sizeof(char *)); if (p_len == NULL) - p_len = calloc((size_t) hunkmax, sizeof(short)); + p_len = malloc((size_t) hunkmax * sizeof(short)); if (p_char == NULL) - p_char = calloc((size_t) hunkmax, sizeof(char)); + p_char = malloc((size_t) hunkmax * sizeof(char)); } /* @@ -155,17 +155,9 @@ grow_hunkmax(void) if (p_line == NULL || p_len == NULL || p_char == NULL) fatal("Internal memory allocation error\n"); - new_p_line = realloc(p_line, new_hunkmax * sizeof(char *)); - if (new_p_line == NULL) - free(p_line); - - new_p_len = realloc(p_len, new_hunkmax * sizeof(short)); - if (new_p_len == NULL) - free(p_len); - - new_p_char = realloc(p_char, new_hunkmax * sizeof(char)); - if (new_p_char == NULL) - free(p_char); + new_p_line = reallocf(p_line, new_hunkmax * sizeof(char *)); + new_p_len = reallocf(p_len, new_hunkmax * sizeof(short)); + new_p_char = reallocf(p_char, new_hunkmax * sizeof(char)); p_char = new_p_char; p_len = new_p_len;