diff --git a/src/lib/libc/stdlib/malloc.3 b/src/lib/libc/stdlib/malloc.3 index eb09eeed..6fd362b9 100644 --- a/src/lib/libc/stdlib/malloc.3 +++ b/src/lib/libc/stdlib/malloc.3 @@ -33,7 +33,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $OpenBSD: malloc.3,v 1.6 1997/05/31 08:55:05 tholo Exp $ +.\" $OpenBSD: malloc.3,v 1.7 1997/08/23 10:43:24 pefo Exp $ .\" .Dd August 27, 1996 .Dt MALLOC 3 @@ -77,6 +77,8 @@ coercion) for storage of any type of object. If the space is of .Em pagesize or larger, the memory returned will be page-aligned. .Pp +Allocation of a zero size object returns a pointer to a zero size object. +.Pp The .Fn free function causes the space pointed to by @@ -120,7 +122,8 @@ If .Fa size is zero and .Fa ptr -is not a null pointer, the object it points to is freed. +is not a null pointer, the object it points to is freed and a new zero size +object is returned. .Pp Malloc will first look for a symbolic link called .Pa /etc/malloc.conf @@ -211,8 +214,8 @@ function returns no value. .Pp The .Fn realloc -function returns either a null pointer or a pointer -to the possibly moved allocated space. +function a pointer to the possibly moved allocated space; +otherwise a null pointer is returned. .Sh MESSAGES If .Fn malloc , diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c index 12cc6708..66d1a2a9 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.28 1997/08/22 17:06:59 deraadt Exp $"; +static char rcsid[] = "$OpenBSD: malloc.c,v 1.29 1997/08/23 10:43:25 pefo Exp $"; #endif /* LIBC_SCCS and not lint */ /* @@ -1234,9 +1234,6 @@ realloc(void *ptr, size_t size) } if (!ptr) { r = imalloc(size); - } else if (ptr && !size) { - ifree(ptr); - r = 0; } else { r = irealloc(ptr, size); }