Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2010-08-28 12:51:21 +0400
committerCorinna Vinschen <corinna@vinschen.de>2010-08-28 12:51:21 +0400
commit893a8b78fca52a5474fbca9a0b881b622afc5044 (patch)
tree28ecddfa7addcab1469a9ae6d6694fdb12dda97d /winsup/cygwin/net.cc
parent657f0e4a1417f0ce12b6d017c700ff35b1fcba80 (diff)
* autoload.cc (LoadDLLprime): Change dllname storage to string16.
(struct dll_info): Convert name to WCHAR. (std_dll_init): Load DLLs with full path to windows system directory. Add hint to Microsoft security advisory. * dcrt0.cc (init_windows_system_directory): New function. (dll_crt0_0): Call init_windows_system_directory first. * exceptions.cc (windows_system_directory): Move to globals.cc. (windows_system_directory_length): Ditto. (events_init): Drop code fetching windows_system_directory. * globals.cc (windows_system_directory): New global variable. (windows_system_directory_length): Ditto. * net.cc (load_ipv6_funcs): Use windows_system_directory rather than GetSystemDirectoryW. * netdb.cc (open_system_file): Ditto. Simplify debug output.
Diffstat (limited to 'winsup/cygwin/net.cc')
-rw-r--r--winsup/cygwin/net.cc40
1 files changed, 19 insertions, 21 deletions
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index c0151e5b6..3e4e45bf4 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -4419,35 +4419,33 @@ static void
load_ipv6_funcs ()
{
tmp_pathbuf tp;
- PWCHAR lib_name = tp.w_get ();
- size_t len;
+ PWCHAR lib_path = tp.w_get ();
+ PWCHAR lib_name;
HMODULE lib;
load_ipv6_guard.init ("klog_guard")->acquire ();
if (ipv6_inited)
goto out;
WSAGetLastError (); /* Kludge. Enforce WSAStartup call. */
- if (GetSystemDirectoryW (lib_name, NT_MAX_PATH))
+ lib_name = wcpcpy (lib_path, windows_system_directory);
+ wcpcpy (lib_name, L"ws2_32.dll");
+ if ((lib = LoadLibraryW (lib_path)))
{
- len = wcslen (lib_name);
- wcpcpy (lib_name + len, L"\\ws2_32.dll");
- if ((lib = LoadLibraryW (lib_name)))
- {
- if (get_ipv6_funcs (lib))
- goto out;
- FreeLibrary (lib);
- }
- wcpcpy (lib_name + len, L"\\wship6.dll");
- if ((lib = LoadLibraryW (lib_name)))
- {
- if (get_ipv6_funcs (lib))
- goto out;
- FreeLibrary (lib);
- }
- freeaddrinfo = NULL;
- getaddrinfo = NULL;
- getnameinfo = NULL;
+ if (get_ipv6_funcs (lib))
+ goto out;
+ FreeLibrary (lib);
}
+ wcpcpy (lib_name, L"wship6.dll");
+ if ((lib = LoadLibraryW (lib_path)))
+ {
+ if (get_ipv6_funcs (lib))
+ goto out;
+ FreeLibrary (lib);
+ }
+ freeaddrinfo = NULL;
+ getaddrinfo = NULL;
+ getnameinfo = NULL;
+
out:
ipv6_inited = true;
load_ipv6_guard.release ();