summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--enum.c4
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 85746f6af2..9bf7518b24 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -19,6 +19,13 @@ Mon Jul 6 09:04:45 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* enum.c (enum_join): deals with self recursive objects to get rid
of infinite recursion. [ruby-core:24150]
+Mon Jul 6 08:00:10 2009 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * enum.c (enum_to_a): should propagate taint to the return value.
+ [ruby-core:24152]
+
+ * enum.c (enum_sort_by): ditto.
+
Mon Jul 6 00:41:41 2009 Tadayoshi Funaba <tadf@dotrb.org>
* rational.c: edited rdoc.
diff --git a/enum.c b/enum.c
index e5122903bb..09ca85d930 100644
--- a/enum.c
+++ b/enum.c
@@ -412,6 +412,7 @@ enum_to_a(int argc, VALUE *argv, VALUE obj)
VALUE ary = rb_ary_new();
rb_block_call(obj, id_each, argc, argv, collect_all, ary);
+ OBJ_INFECT(ary, obj);
return ary;
}
@@ -605,6 +606,7 @@ enum_group_by(VALUE obj)
hash = rb_hash_new();
rb_block_call(obj, id_each, 0, 0, group_by_i, hash);
+ OBJ_INFECT(hash, obj);
return hash;
}
@@ -816,6 +818,8 @@ enum_sort_by(VALUE obj)
RARRAY_PTR(ary)[i] = RNODE(RARRAY_PTR(ary)[i])->u2.value;
}
RBASIC(ary)->klass = rb_cArray;
+ OBJ_INFECT(ary, obj);
+
return ary;
}