aboutsummaryrefslogtreecommitdiffstats
path: root/lib/irb.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-06-10 05:22:17 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-06-10 05:22:17 +0000
commit373a59b95b71b54b99a0ba229cd5860fac308115 (patch)
tree28f8c503efdbf7bfc9a70f33aec63933bbb7c1ac /lib/irb.rb
parent434e71244a50ff874a14113e7cc46ce02bacb34e (diff)
downloadruby-373a59b95b71b54b99a0ba229cd5860fac308115.tar.gz
* lib/irb.rb (IRB::Irb::eval_input): warn and exit if $SAFE >=3
after input evaluation. * lib/irb.rb (IRB::Irb::eval_input): untaint input string. now irb works for levels 1 and 2. * ext/syck/rubyext.c (syck_loader_transfer): should not use rb_cProc directly, since type_proc may be Proc, Block, or Method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/irb.rb')
-rw-r--r--lib/irb.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/irb.rb b/lib/irb.rb
index 0d0f6f4136..1e59d6f669 100644
--- a/lib/irb.rb
+++ b/lib/irb.rb
@@ -141,10 +141,10 @@ module IRB
end
end
- @scanner.each_top_level_statement do
- |line, line_no|
+ @scanner.each_top_level_statement do |line, line_no|
signal_status(:IN_EVAL) do
begin
+ line.untaint
@context.evaluate(line, line_no)
output_value if @context.echo?
rescue StandardError, ScriptError, Abort
@@ -180,6 +180,10 @@ module IRB
end
print "Maybe IRB bug!!\n" if irb_bug
end
+ if $SAFE > 2
+ warn "Error: irb does not work for $SAFE level higher than 2"
+ exit 1
+ end
end
end
end