diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 1e5c7cd4f..73530df5a 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2007-11-23 Christopher Faylor + + * cygheap.cc (_crealloc): Avoid memcpy when _cmalloc returns NULL. + 2007-11-08 Christopher Faylor * dllfixdbg: Eliminate extra objcopy step. diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc index 3b4b72ba7..c25434188 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; }