diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index ef1fbab1f..873b94346 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2013-01-23 Christopher Faylor + + * miscfuncs.cc (__import_address): Check if malloc field points + directly at 'malloc'. + 2013-01-23 Christopher Faylor * miscfuncs.cc (__import_address): On second thought, the chance that diff --git a/winsup/cygwin/malloc_wrapper.cc b/winsup/cygwin/malloc_wrapper.cc index c514af345..2adacba9c 100644 --- a/winsup/cygwin/malloc_wrapper.cc +++ b/winsup/cygwin/malloc_wrapper.cc @@ -286,7 +286,8 @@ malloc_init () extern void *_sigfe_malloc; /* Decide if we are using our own version of malloc by testing the import address from user_data. */ - use_internal = import_address (user_data->malloc) == &_sigfe_malloc; + use_internal = user_data->malloc == malloc + || import_address (user_data->malloc) == &_sigfe_malloc; malloc_printf ("using %s malloc", use_internal ? "internal" : "external"); internal_malloc_determined = true; }