summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2001-11-17 10:57:04 +0000
committerphk <phk@FreeBSD.org>2001-11-17 10:57:04 +0000
commit30e4ff53d373d7acbc475e464227fe4f341ba0dd (patch)
tree44a9d7e4e59e43446a2f45dc5cbd71a4942cdbfa /lib/libc/stdlib
parent86ed17d675cb503ddb3f71f8b6f7c3af530bb29a (diff)
downloadFreeBSD-src-30e4ff53d373d7acbc475e464227fe4f341ba0dd.zip
FreeBSD-src-30e4ff53d373d7acbc475e464227fe4f341ba0dd.tar.gz
If 'VX' is given, realloc(foo,0) will bail, it shouldn't.
PR: 29376 Submitted by: Farooq Mela <fmela0@sm.socccd.cc.ca.us>
Diffstat (limited to 'lib/libc/stdlib')
-rw-r--r--lib/libc/stdlib/malloc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c
index 999c9b5..5bfa4ee 100644
--- a/lib/libc/stdlib/malloc.c
+++ b/lib/libc/stdlib/malloc.c
@@ -1128,7 +1128,8 @@ free(void *ptr)
void *
realloc(void *ptr, size_t size)
{
- register void *r;
+ void *r;
+ int err = 0;
THREAD_LOCK();
malloc_func = " in realloc():";
@@ -1154,13 +1155,15 @@ realloc(void *ptr, size_t size)
r = ZEROSIZEPTR;
} else if (!ptr) {
r = imalloc(size);
+ err = (r == NULL);
} else {
r = irealloc(ptr, size);
+ err = (r == NULL);
}
UTRACE(ptr, size, r);
malloc_active--;
THREAD_UNLOCK();
- if (malloc_xmalloc && !r)
+ if (malloc_xmalloc && err)
wrterror("out of memory\n");
return (r);
}
OpenPOWER on IntegriCloud