summaryrefslogtreecommitdiffstats
path: root/ext/tk/lib
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tk/lib')
-rw-r--r--ext/tk/lib/multi-tk.rb16
1 files changed, 12 insertions, 4 deletions
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