Tcl Source Code

Artifact [fdac89feb6]
Login

Artifact fdac89feb6ced055d848bed2a94fb4ce6a0585f1:

Attachment "safe.tcl.patch" to ticket [759607ffff] added by lukekalemyers 2003-06-24 10:00:58.
--- library/safe.tcl	2004-06-23 07:51:19.000000000 -0700
+++ library/safe.tcl.new	2004-06-23 07:53:14.000000000 -0700
@@ -476,8 +476,9 @@
 
 	if {[catch {::interp eval $slave\
 		{source [file join $tcl_library init.tcl]}} msg]} {
-	    Log $slave "can't source init.tcl ($msg)"
-	    error "can't source init.tcl into slave $slave ($msg)"
+		set path [file join $::tcl_library init.tcl] 
+	    Log $slave "can't source [list $path] ($msg)"
+		error "can't source [list $path] into slave $slave ($msg)"
 	}
 
 	return $slave
@@ -837,7 +838,15 @@
 	    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 [list [file normalize $path]]
+	}
+
+	if {[lsearch -exact $norm_access_path $norm_parent] == -1} {
 	    error "\"$file\": not in access_path"
 	}
     }