[前][次][番号順一覧][スレッド一覧]

ruby-changes:12656

From: matz <ko1@a...>
Date: Mon, 3 Aug 2009 18:15:29 +0900 (JST)
Subject: [ruby-changes:12656] Ruby:r24371 (trunk): * thread.c (recursive_push): untrust internal hash to prevent

matz	2009-08-03 18:15:09 +0900 (Mon, 03 Aug 2009)

  New Revision: 24371

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24371

  Log:
    * thread.c (recursive_push): untrust internal hash to prevent
      unexpected SecurityError.  a patch from Kazuhiro NISHIYAMA.
      Fix: #1864  [ruby-dev:38982]

  Modified files:
    trunk/ChangeLog
    trunk/thread.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24370)
+++ ChangeLog	(revision 24371)
@@ -1,3 +1,9 @@
+Mon Aug  3 18:12:54 2009  Yukihiro Matsumoto  <matz@r...>
+
+	* thread.c (recursive_push): untrust internal hash to prevent
+	  unexpected SecurityError.  a patch from Kazuhiro NISHIYAMA.
+	  Fix: #1864  [ruby-dev:38982]
+
 Mon Aug  3 17:06:05 2009  Yukihiro Matsumoto  <matz@r...>
 
 	* lib/README: updated.  a patch from Daniel Bovensiepen.
Index: thread.c
===================================================================
--- thread.c	(revision 24370)
+++ thread.c	(revision 24371)
@@ -3362,6 +3362,7 @@
     }
     if (NIL_P(list) || TYPE(list) != T_HASH) {
 	list = rb_hash_new();
+	OBJ_UNTRUST(list);
 	rb_hash_aset(hash, sym, list);
     }
     if (!paired_obj) {
@@ -3374,6 +3375,7 @@
 	if (TYPE(pair_list) != T_HASH){
 	    VALUE other_paired_obj = pair_list;
 	    pair_list = rb_hash_new();
+	    OBJ_UNTRUST(pair_list);
 	    rb_hash_aset(pair_list, other_paired_obj, Qtrue);
 	    rb_hash_aset(list, obj, pair_list);
 	}

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]