diff options
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | ext/tk/lib/multi-tk.rb | 16 |
2 files changed, 16 insertions, 4 deletions
@@ -1,3 +1,7 @@ +Mon Sep 8 22:15:33 2003 <nagai@ai.kyutech.ac.jp> + + * multi-tk.rb: modify security check at creating a new interpreter + Mon Sep 8 20:00:12 2003 Nobuyoshi Nakada <nobu@ruby-lang.org> * lib/optparse.rb, lib/optparse/version.rb: search also all diff --git a/ext/tk/lib/multi-tk.rb b/ext/tk/lib/multi-tk.rb index 7053dddef..750a2b79d 100644 --- a/ext/tk/lib/multi-tk.rb +++ b/ext/tk/lib/multi-tk.rb @@ -459,12 +459,20 @@ class MultiTkIp ###################################### def initialize(master, safeip=true, keys={}) - if safeip == nil && !master.master? - fail SecurityError, "slave-ip cannot create master-ip" + if $SAFE >= 4 + fail SecurityError, "cannot create a new interpreter at level #{$SAFE}" + end + + if safeip == nil && $SAFE >= 2 + fail SecurityError, "cannot create a master-ip at level #{$SAFE}" end - if safeip == nil && $SAFE >= 4 - fail SecurityError, "cannot create master-ip at level #{$SAFE}" + if !master.master? && master.safe? + fail SecurityError, "safe-slave-ip cannot create a new interpreter" + end + + if safeip == nil && !master.master? + fail SecurityError, "slave-ip cannot create a master-ip" end unless keys.kind_of? Hash |
