summaryrefslogtreecommitdiff
path: root/lib/libc/stdlib/malloc.c
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1996-01-29 02:00:22 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1996-01-29 02:00:22 +0000
commitf63cf12a96d8c8ec19180f026f219ccdd214abf8 (patch)
tree3a89a4f1326b52f776e6da4ed682ff017c0b5b5e /lib/libc/stdlib/malloc.c
parent5ea33d20a5d68b6db25180ba99e6f67f461b5694 (diff)
realloc(ptr, 0) does not free; from seebs@taniemarie.solon.com;
netbsd pr#1806
Diffstat (limited to 'lib/libc/stdlib/malloc.c')
-rw-r--r--lib/libc/stdlib/malloc.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c
index bb4c3fd7e77..4498a9fb6c5 100644
--- a/lib/libc/stdlib/malloc.c
+++ b/lib/libc/stdlib/malloc.c
@@ -1,3 +1,5 @@
+/* $NetBSD: malloc.c,v 1.6 1996/01/17 02:45:25 jtc Exp $ */
+
/*
* Copyright (c) 1983 Regents of the University of California.
* All rights reserved.
@@ -32,8 +34,11 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-/*static char *sccsid = "from: @(#)malloc.c 5.11 (Berkeley) 2/23/91";*/
-static char *rcsid = "$Id: malloc.c,v 1.1 1995/10/18 08:42:18 deraadt Exp $";
+#if 0
+static char *sccsid = "from: @(#)malloc.c 5.11 (Berkeley) 2/23/91";
+#else
+static char *rcsid = "$NetBSD: malloc.c,v 1.6 1996/01/17 02:45:25 jtc Exp $";
+#endif
#endif /* LIBC_SCCS and not lint */
/*
@@ -310,6 +315,10 @@ realloc(cp, nbytes)
if (cp == NULL)
return (malloc(nbytes));
+ if (nbytes == 0) {
+ free (cp);
+ return NULL;
+ }
op = (union overhead *)((caddr_t)cp - sizeof (union overhead));
if (op->ov_magic == MAGIC) {
was_alloced++;