summaryrefslogtreecommitdiffstats
path: root/usr.bin/patch
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2014-06-12 19:01:57 +0000
committerpfg <pfg@FreeBSD.org>2014-06-12 19:01:57 +0000
commit9d66b6252084d5a7efef07872648c78b5043db5a (patch)
tree04ac889e24708cf25a8f37b50a2eaebf637ae073 /usr.bin/patch
parentff1792b6a4057bf5997d3dcf8372567da58cfd01 (diff)
downloadFreeBSD-src-9d66b6252084d5a7efef07872648c78b5043db5a.zip
FreeBSD-src-9d66b6252084d5a7efef07872648c78b5043db5a.tar.gz
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
Diffstat (limited to 'usr.bin/patch')
-rw-r--r--usr.bin/patch/patch.113
-rw-r--r--usr.bin/patch/pch.c20
2 files changed, 11 insertions, 22 deletions
diff --git a/usr.bin/patch/patch.1 b/usr.bin/patch/patch.1
index 587b166..36ba860 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 eca12ad..2ca528a 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;
OpenPOWER on IntegriCloud