safe interp not allowed
authorVince Darley <vincentdarley@sourceforge.net>
Thu, 8 Nov 2001 19:52:05 +0000 (19:52 +0000)
committerVince Darley <vincentdarley@sourceforge.net>
Thu, 8 Nov 2001 19:52:05 +0000 (19:52 +0000)
ChangeLog
generic/vfs.c

index 325097b9191fc370f831d60b1e7aad72ffab8ba2..523c266a10b7a30e9833a0a2d3691f97a5a55b68 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2001-11-08  Vince Darley <vincentdarley@sourceforge.net>
-       * generic/vfs.c: made code thread-safe.
+       * generic/vfs.c: made code thread-safe.  Disallow
+       safe interpreters from using vfs code since they can then
+       mess with the filesystem across all interpreters.
 
 2001-11-07  Vince Darley <vincentdarley@sourceforge.net>
        * generic/vfs.c: all mount information is now stored in a
index beb71e163942d0db0eeb66938ee89687a4b288d2..9c6961c562235b205a59106aff013c0c58402c9f 100644 (file)
@@ -291,6 +291,13 @@ Vfs_Init(interp)
     if (Tcl_PkgRequire(interp, "Tcl", "8.4", 0) == NULL) {
        return TCL_ERROR;
     }
+    /* 
+     * Safe interpreters are not allowed to modify the filesystem!
+     * (Since those modifications will affect other interpreters).
+     */
+    if (Tcl_IsSafe(interp)) {
+        return TCL_ERROR;
+    }
     if (Tcl_PkgProvide(interp, "vfs", "1.0") == TCL_ERROR) {
         return TCL_ERROR;
     }