summaryrefslogtreecommitdiff
path: root/enum.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-06 01:03:16 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-06 01:03:16 +0000
commit8c7f7c29b47ae1423f1efd7a0b2350b3c961b0f2 (patch)
tree1c6695a4c56a90e54c50ff1452b5de8736644197 /enum.c
parent06b9094f96fb104ef1adf887edcb960a20fe2747 (diff)
* enum.c (enum_to_a): should propagate taint to the return value.
[ruby-core:24152] * enum.c (enum_sort_by): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enum.c')
-rw-r--r--enum.c4
1 files changed, 4 insertions, 0 deletions
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;
}