Module: wine Branch: master Commit: e66758dd531646aa6707c71f7e6f23ffec4cb1a0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e66758dd531646aa6707c71f7e... Author: Martin Storsjo <martin(a)martin.st> Date: Fri Nov 6 14:51:55 2015 +0200 msvcrt: Pass on the return value in _callnewh. Also try to avoid race conditions by storing the new handler in a local variable before checking whether it's non-null. Signed-off-by: Martin Storsjo <martin(a)martin.st> Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcrt/heap.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dlls/msvcrt/heap.c b/dlls/msvcrt/heap.c index bb265bf..02e69fe 100644 --- a/dlls/msvcrt/heap.c +++ b/dlls/msvcrt/heap.c @@ -234,9 +234,11 @@ int CDECL MSVCRT__set_new_mode(int mode) */ int CDECL _callnewh(MSVCRT_size_t size) { - if(MSVCRT_new_handler) - (*MSVCRT_new_handler)(size); - return 0; + int ret = 0; + MSVCRT_new_handler_func handler = MSVCRT_new_handler; + if(handler) + ret = (*handler)(size) ? 1 : 0; + return ret; } /*********************************************************************