summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorhobbs <hobbs>2003-07-16 22:49:31 (GMT)
committerhobbs <hobbs>2003-07-16 22:49:31 (GMT)
commit18936a82e21ffc0c684e920a9709a0f4bd7073f9 (patch)
tree9c0ccdc9db2d126b8fc3bd9d97f13a4ea7ecdaa1 /library
parentce1ccf5280accceb6ff3ead555fc35a224310e91 (diff)
downloadtcl-18936a82e21ffc0c684e920a9709a0f4bd7073f9.zip
tcl-18936a82e21ffc0c684e920a9709a0f4bd7073f9.tar.gz
tcl-18936a82e21ffc0c684e920a9709a0f4bd7073f9.tar.bz2
* library/safe.tcl (FileInAccessPath): normalize paths before
comparison. [Bug 759607] (myers)
Diffstat (limited to 'library')
-rw-r--r--library/safe.tcl12
1 files changed, 10 insertions, 2 deletions
diff --git a/library/safe.tcl b/library/safe.tcl
index a259bdb..a5252d8 100644
--- a/library/safe.tcl
+++ b/library/safe.tcl
@@ -12,7 +12,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: safe.tcl,v 1.9 2003/02/08 22:03:20 hobbs Exp $
+# RCS: @(#) $Id: safe.tcl,v 1.9.2.1 2003/07/16 22:49:31 hobbs Exp $
#
# The implementation is based on namespaces. These naming conventions
@@ -837,7 +837,15 @@ proc ::safe::setLogCmd {args} {
error "\"$file\": is a directory"
}
set parent [file dirname $file]
- if {[lsearch -exact $access_path $parent] == -1} {
+
+ # Normalize paths for comparison since lsearch knows nothing of
+ # potential pathname anomalies.
+ set norm_parent [file normalize $parent]
+ foreach path $access_path {
+ lappend norm_access_path [file normalize $path]
+ }
+
+ if {[lsearch -exact $norm_access_path $norm_parent] == -1} {
error "\"$file\": not in access_path"
}
}