From 97d0d1b9cdde83cad131a8958b37c806ca2ae6c8 Mon Sep 17 00:00:00 2001
From: millert <>
Date: Wed, 10 Nov 1999 20:12:31 +0000
Subject: calloc() needs to be separate from malloc in case a user wants to
 have their own malloc() implementation.

---
 src/lib/libc/stdlib/calloc.c | 53 ++++++++++++++++++++++++++++++++++++++++++++
 src/lib/libc/stdlib/malloc.c | 26 +---------------------
 2 files changed, 54 insertions(+), 25 deletions(-)
 create mode 100644 src/lib/libc/stdlib/calloc.c

diff --git a/src/lib/libc/stdlib/calloc.c b/src/lib/libc/stdlib/calloc.c
new file mode 100644
index 0000000000..e79d71f93e
--- /dev/null
+++ b/src/lib/libc/stdlib/calloc.c
@@ -0,0 +1,53 @@
+/*-
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+static char *rcsid = "$OpenBSD: calloc.c,v 1.5 1999/11/10 20:12:31 millert Exp $";
+#endif /* LIBC_SCCS and not lint */
+
+#include <stdlib.h>
+#include <string.h>
+
+void *
+calloc(num, size)
+	size_t num;
+	register size_t size;
+{
+	register void *p;
+
+	size *= num;
+	p = malloc(size);
+	if (p)
+		memset(p, 0, size);
+	return(p);
+}
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c
index 3582d7980c..88e25995f3 100644
--- a/src/lib/libc/stdlib/malloc.c
+++ b/src/lib/libc/stdlib/malloc.c
@@ -8,7 +8,7 @@
  */
 
 #if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$OpenBSD: malloc.c,v 1.37 1999/11/09 19:25:33 millert Exp $";
+static char rcsid[] = "$OpenBSD: malloc.c,v 1.38 1999/11/10 20:12:31 millert Exp $";
 #endif /* LIBC_SCCS and not lint */
 
 /*
@@ -1278,27 +1278,3 @@ realloc(void *ptr, size_t size)
 	wrterror("out of memory.\n");
     return (r);
 }
-
-void *
-calloc(size_t num, size_t size)
-{
-    register void *r;
-
-    malloc_func = " in calloc():";
-    THREAD_LOCK();
-    if (malloc_active++) {
-	wrtwarning("recursive call.\n");
-        malloc_active--;
-	return (0);
-    }
-    size *= num;
-    r = imalloc(size);
-    if (r && !malloc_zero)
-	memset(r, 0, size)
-    UTRACE(0, size, r);
-    malloc_active--;
-    THREAD_UNLOCK();
-    if (malloc_xmalloc && !r)
-	wrterror("out of memory.\n");
-    return (r);
-}
-- 
cgit v1.2.3-55-g6feb