summaryrefslogtreecommitdiffstats
path: root/win
diff options
context:
space:
mode:
authorvincentdarley <vincentdarley>2003-03-18 10:51:28 (GMT)
committervincentdarley <vincentdarley>2003-03-18 10:51:28 (GMT)
commit546d6ca6ea71958e884437bf65cb7b2421590747 (patch)
tree4f3e6b8972cfe7e3df3b65f45acff6e48418048d /win
parent7a9c4243ac433c65c5b5ac2b90bd788b15307548 (diff)
downloadtcl-546d6ca6ea71958e884437bf65cb7b2421590747.zip
tcl-546d6ca6ea71958e884437bf65cb7b2421590747.tar.gz
tcl-546d6ca6ea71958e884437bf65cb7b2421590747.tar.bz2
Fixes for three filesystem problems
Diffstat (limited to 'win')
-rw-r--r--win/tclWinFile.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index 8213e6d..f44140f 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclWinFile.c,v 1.44 2003/02/10 12:50:32 vincentdarley Exp $
+ * RCS: @(#) $Id: tclWinFile.c,v 1.44.2.1 2003/03/18 10:51:31 vincentdarley Exp $
*/
//#define _WIN32_WINNT 0x0500
@@ -474,6 +474,16 @@ WinReadLinkDirectory(LinkDirectory)
if (0 == strncmp(copy,"\\??\\",4)) {
copy += 4;
len -= 4;
+ if (0 == strncmp(copy,"Volume{",7)) {
+ /*
+ * This is actually a mounted drive, which is in any
+ * case treated as being mounted in place, so it is
+ * in some sense a symlink to itself
+ */
+ Tcl_DStringFree(&ds);
+ Tcl_SetErrno(EINVAL);
+ return NULL;
+ }
} else if (0 == strncmp(copy,"\\\\?\\",4)) {
copy += 4;
len -= 4;