summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/dll_init.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2012-07-02 14:14:01 +0000
committerCorinna Vinschen <corinna@vinschen.de>2012-07-02 14:14:01 +0000
commit26e603454f5d7fc91027497597375370afd2743f (patch)
tree9fd576c83c45f9ee81ac732b62420d015af1d04e /winsup/cygwin/dll_init.cc
parent1809b65e23777b594936915264cc0bcfb78ff622 (diff)
downloadcygnal-26e603454f5d7fc91027497597375370afd2743f.tar.gz
cygnal-26e603454f5d7fc91027497597375370afd2743f.tar.bz2
cygnal-26e603454f5d7fc91027497597375370afd2743f.zip
* dll_init.cc (dll_list::alloc): Take long UNC paths into account.
Diffstat (limited to 'winsup/cygwin/dll_init.cc')
-rw-r--r--winsup/cygwin/dll_init.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/dll_init.cc b/winsup/cygwin/dll_init.cc
index 3b358d5a0..420f0d8f2 100644
--- a/winsup/cygwin/dll_init.cc
+++ b/winsup/cygwin/dll_init.cc
@@ -180,7 +180,14 @@ dll_list::alloc (HINSTANCE h, per_process *p, dll_type type)
GetModuleFileNameW (h, buf, sizeof (buf));
PWCHAR name = buf;
if (!wcsncmp (name, L"\\\\?\\", 4))
- name += 4;
+ {
+ name += 4;
+ if (!wcsncmp (name, L"UNC\\", 4))
+ {
+ name += 2;
+ *name = L'\\';
+ }
+ }
DWORD namelen = wcslen (name);
PWCHAR modname = wcsrchr (name, L'\\') + 1;