diff options
author | vincentdarley <vincentdarley> | 2003-03-18 10:51:28 (GMT) |
---|---|---|
committer | vincentdarley <vincentdarley> | 2003-03-18 10:51:28 (GMT) |
commit | 546d6ca6ea71958e884437bf65cb7b2421590747 (patch) | |
tree | 4f3e6b8972cfe7e3df3b65f45acff6e48418048d /win/tclWinFile.c | |
parent | 7a9c4243ac433c65c5b5ac2b90bd788b15307548 (diff) | |
download | tcl-546d6ca6ea71958e884437bf65cb7b2421590747.zip tcl-546d6ca6ea71958e884437bf65cb7b2421590747.tar.gz tcl-546d6ca6ea71958e884437bf65cb7b2421590747.tar.bz2 |
Fixes for three filesystem problems
Diffstat (limited to 'win/tclWinFile.c')
-rw-r--r-- | win/tclWinFile.c | 12 |
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; |