From 315cd8341823e129ba5df0f420443e9d06d62c6f Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 22 May 2001 08:28:11 +0000 Subject: * variable.c (rb_alias_variable): should not allow variable aliasing if $SAFE >= 4. * parse.y (expr): "break" and "next" to take optional expression, which is used as a value for termination. [new, experimental] * eval.c (rb_eval): "break" can give value to terminating method. * eval.c (rb_eval): "break" and "next" to take optional expression. * eval.c (rb_yield_0): "next" can give value to terminating "yield". * eval.c (rb_iterate): "break" can give value to terminating method. * eval.c (proc_call): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- variable.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'variable.c') diff --git a/variable.c b/variable.c index 16828a029d..4286f56086 100644 --- a/variable.c +++ b/variable.c @@ -700,6 +700,8 @@ rb_alias_variable(name1, name2) { struct global_entry *entry1, *entry2; + if (rb_safe_level() >= 4) + rb_raise(rb_eSecurityError, "Insecure: can't alias global variable"); entry1 = rb_global_entry(name1); entry2 = rb_global_entry(name2); -- cgit v1.2.3