summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-29 06:53:48 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-29 06:53:48 +0000
commit27ff072349b9a5e0efc83977b7158f939f16df15 (patch)
treefa225f91650c8733b2613fe33eb3a9175c87a315
parentf6f8883202d89b371ebc14b635dc4f090342d326 (diff)
* eval.c (Init_Proc): taint preallocated exception object
sysstack_error. [ruby-talk:84534] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--eval.c1
-rw-r--r--lib/cgi.rb2
3 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ffbd5e51f2..1aad2ef49a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Oct 29 15:28:34 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * eval.c (Init_Proc): taint preallocated exception object
+ sysstack_error. [ruby-talk:84534]
+
Wed Oct 29 11:27:39 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
* parse.y (ret_args): node may be NULL. [ruby-talk:84530]
diff --git a/eval.c b/eval.c
index 59fe9c378b..cac306671b 100644
--- a/eval.c
+++ b/eval.c
@@ -7732,6 +7732,7 @@ Init_Proc()
rb_eSysStackError = rb_define_class("SystemStackError", rb_eStandardError);
sysstack_error = rb_exc_new2(rb_eSysStackError, "stack level too deep");
+ OBJ_TAINT(sysstack_error);
rb_global_variable(&sysstack_error);
rb_cProc = rb_define_class("Proc", rb_cObject);
diff --git a/lib/cgi.rb b/lib/cgi.rb
index 82318707d6..a6003d99a6 100644
--- a/lib/cgi.rb
+++ b/lib/cgi.rb
@@ -891,7 +891,7 @@ class CGI
# # "name2" => ["value1", "value2", ...], ... }
#
def CGI::parse(query)
- params = Hash.new{|hash,key|hash[key]=[]}
+ params = Hash.new([].freeze)
query.split(/[&;]/n).each do |pairs|
key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) }