aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2007-11-23 16:37:05 +0000
committerChristopher Faylor <me@cgf.cx>2007-11-23 16:37:05 +0000
commit32cba6cb3a8366df854ba24ece2a60f1b2f872a3 (patch)
tree21b23f484ecfe4023485f548169cceb3efc52ad3
parent2194c4db86e473a25656c3bcc5315e9a05577981 (diff)
downloadnewlib-32cba6cb3a8366df854ba24ece2a60f1b2f872a3.zip
newlib-32cba6cb3a8366df854ba24ece2a60f1b2f872a3.tar.gz
newlib-32cba6cb3a8366df854ba24ece2a60f1b2f872a3.tar.bz2
* cygheap.cc (_crealloc): Avoid memcpy when _cmalloc returns NULL.
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/cygheap.cc7
2 files changed, 9 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 1e5c7cd..73530df 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2007-11-23 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * cygheap.cc (_crealloc): Avoid memcpy when _cmalloc returns NULL.
+
2007-11-08 Christopher Faylor <me+cygwin@cgf.cx>
* dllfixdbg: Eliminate extra objcopy step.
diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc
index 3b4b72b..c254341 100644
--- a/winsup/cygwin/cygheap.cc
+++ b/winsup/cygwin/cygheap.cc
@@ -232,8 +232,11 @@ _crealloc (void *ptr, unsigned size)
if (size <= oldsize)
return ptr;
newptr = _cmalloc (size);
- memcpy (newptr, ptr, oldsize);
- _cfree (ptr);
+ if (newptr)
+ {
+ memcpy (newptr, ptr, oldsize);
+ _cfree (ptr);
+ }
}
return newptr;
}