From 23907fd3dfdf1fc4f533824fb932671eb99816b5 Mon Sep 17 00:00:00 2001 From: cgf Date: Tue, 22 Jun 2004 04:00:14 +0000 Subject: [PATCH] * autoload.cc (wsock_init): Keep lock while modifying return address. --- winsup/cygwin/ChangeLog | 4 ++++ winsup/cygwin/autoload.cc | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index d0a9167e7c..0a9d16d108 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2004-06-21 Christopher Faylor + + * autoload.cc (wsock_init): Keep lock while modifying return address. + 2004-06-17 Corinna Vinschen * fhandler.cc (fhandler_base::open): Remove 9x specific code. diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc index f2d46d1b32..6062f7e21e 100644 --- a/winsup/cygwin/autoload.cc +++ b/winsup/cygwin/autoload.cc @@ -278,13 +278,13 @@ wsock_init () } } - InterlockedDecrement (&here); - /* Kludge alert. Redirects the return address to dll_chain. */ __asm__ __volatile__ (" \n\ movl $dll_chain,4(%ebp) \n\ "); + InterlockedDecrement (&here); + volatile retchain ret; /* Set "arguments for dll_chain. */ ret.low = (long) dll_func_load; -- 2.11.0