summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--win/tclWinFile.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index d1078f5..8ea6548 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -2335,6 +2335,12 @@ TclpObjNormalizePath(interp, pathPtr, nextCheckpoint)
}
Tcl_DStringAppend(&dsNorm, nativePath, len);
lastValidPathEnd = currentPathEndPosition;
+ } else if (nextCheckpoint == 0) {
+ /* Path starts with a drive designation
+ * that's not actually on the system.
+ * We still must normalize up past the
+ * first separator. [Bug 3603434] */
+ currentPathEndPosition++;
}
}
Tcl_DStringFree(&ds);
@@ -2417,6 +2423,12 @@ TclpObjNormalizePath(interp, pathPtr, nextCheckpoint)
Tcl_DStringAppend(&dsNorm, nativePath,
sizeof(WCHAR)*len);
lastValidPathEnd = currentPathEndPosition;
+ } else if (nextCheckpoint == 0) {
+ /* Path starts with a drive designation
+ * that's not actually on the system.
+ * We still must normalize up past the
+ * first separator. [Bug 3603434] */
+ currentPathEndPosition++;
}
}
Tcl_DStringFree(&ds);