From e5c516c89a62839fd025ae112041ed9a5f06c9d0 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 11 Feb 2015 02:01:36 +0000 Subject: generator.c: fix infinite recursion * ext/json/generator/generator.c (generate_json): get rid of unnecessary recursive calls which can cause infinite recursion. T_STRING may not have rb_cString. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/json/test_json_generate.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test/json') diff --git a/test/json/test_json_generate.rb b/test/json/test_json_generate.rb index 8db0b7890b..1834290944 100755 --- a/test/json/test_json_generate.rb +++ b/test/json/test_json_generate.rb @@ -334,4 +334,14 @@ EOT assert_equal true, JSON.generate(["\xea"]) end end + + def test_string_subclass + s = Class.new(String) do + def to_s; self; end + undef to_json + end + assert_nothing_raised(SystemStackError) do + assert_equal '[""]', JSON.generate([s.new]) + end + end end -- cgit v1.2.3