diff options
author | Christopher Faylor <me@cgf.cx> | 2004-06-22 04:00:16 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2004-06-22 04:00:16 +0000 |
commit | c0508da25acd6cdfb19e25eead5906d37743a925 (patch) | |
tree | 1f6dfb9c931c860d8f27a8cacf6e194f632426a6 | |
parent | 10800ca5f583d5c6b75dd8799b7b392bd4d3da91 (diff) | |
download | cygnal-c0508da25acd6cdfb19e25eead5906d37743a925.tar.gz cygnal-c0508da25acd6cdfb19e25eead5906d37743a925.tar.bz2 cygnal-c0508da25acd6cdfb19e25eead5906d37743a925.zip |
* autoload.cc (wsock_init): Keep lock while modifying return address.
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/autoload.cc | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index d0a9167e7..0a9d16d10 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2004-06-21 Christopher Faylor <cgf@alum.bu.edu> + + * autoload.cc (wsock_init): Keep lock while modifying return address. + 2004-06-17 Corinna Vinschen <corinna@vinschen.de> * fhandler.cc (fhandler_base::open): Remove 9x specific code. diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc index f2d46d1b3..6062f7e21 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; |