summaryrefslogtreecommitdiffstats
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
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.
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/dll_init.cc9
2 files changed, 12 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 77e54f78b..a045291fa 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2012-07-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * dll_init.cc (dll_list::alloc): Take long UNC paths into account.
+
2012-07-01 Christopher Faylor <me.cygwin2012@cgf.cx>
* Makefile.in: Add some more optimization flags for cygwait, malloc and
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;