Browse Source

realloc(ptr, 0) does not free; from seebs@taniemarie.solon.com;

netbsd pr#1806
OPENBSD_2_0
deraadt 29 years ago
parent
commit
3085be1941
1 changed files with 11 additions and 2 deletions
  1. +11
    -2
      src/lib/libc/stdlib/malloc.c

+ 11
- 2
src/lib/libc/stdlib/malloc.c View File

@ -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. * Copyright (c) 1983 Regents of the University of California.
* All rights reserved. * All rights reserved.
@ -32,8 +34,11 @@
*/ */
#if defined(LIBC_SCCS) && !defined(lint) #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.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 */ #endif /* LIBC_SCCS and not lint */
/* /*
@ -310,6 +315,10 @@ realloc(cp, nbytes)
if (cp == NULL) if (cp == NULL)
return (malloc(nbytes)); return (malloc(nbytes));
if (nbytes == 0) {
free (cp);
return NULL;
}
op = (union overhead *)((caddr_t)cp - sizeof (union overhead)); op = (union overhead *)((caddr_t)cp - sizeof (union overhead));
if (op->ov_magic == MAGIC) { if (op->ov_magic == MAGIC) {
was_alloced++; was_alloced++;


Loading…
Cancel
Save