summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/autoload.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/autoload.cc')
-rw-r--r--winsup/cygwin/autoload.cc20
1 files changed, 3 insertions, 17 deletions
diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc
index 5c8dcd8e3..d8e6e794c 100644
--- a/winsup/cygwin/autoload.cc
+++ b/winsup/cygwin/autoload.cc
@@ -332,31 +332,17 @@ union retchain
/* This function handles the problem described here:
http://www.microsoft.com/technet/security/advisory/2269637.mspx
- https://msdn.microsoft.com/library/ff919712
-
- It also contains a workaround for the problem reported here:
- http://cygwin.com/ml/cygwin/2011-02/msg00552.html
- and discussed here:
- http://cygwin.com/ml/cygwin-developers/2011-02/threads.html#00007
-
- To wit: winmm.dll calls FreeLibrary in its DllMain and that can result
- in LoadLibraryExW returning an ERROR_INVALID_ADDRESS. */
+ https://msdn.microsoft.com/library/ff919712 */
static __inline bool
dll_load (HANDLE& handle, PWCHAR name)
{
HANDLE h = NULL;
WCHAR dll_path[MAX_PATH];
- /* If that failed, try loading with full path, which sometimes
- fails for no good reason. */
+ /* Try loading with full path, which sometimes fails for no good reason. */
wcpcpy (wcpcpy (dll_path, windows_system_directory), name);
h = LoadLibraryW (dll_path);
- /* If that failed according to the second problem outlined in the
- comment preceeding this function. */
- if (!h && handle && wincap.use_dont_resolve_hack ()
- && GetLastError () == ERROR_INVALID_ADDRESS)
- h = LoadLibraryExW (dll_path, NULL, DONT_RESOLVE_DLL_REFERENCES);
- /* Last resort: Try loading just by name. */
+ /* If it failed, try loading just by name. */
if (!h)
h = LoadLibraryW (name);
if (!h)