From 4f78e7fff4949f5c94d35bce6b610d1188fd7c27 Mon Sep 17 00:00:00 2001 From: mame Date: Tue, 16 Mar 2010 16:26:04 +0000 Subject: * parse.y (rb_intern3): prohibit Symbol with an invalid encoding. [ruby-core:24621] * test/ruby/test_m17n_comb.rb: modify a test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'parse.y') diff --git a/parse.y b/parse.y index e338c6fa38..6a0e431083 100644 --- a/parse.y +++ b/parse.y @@ -9505,6 +9505,10 @@ rb_intern3(const char *name, long len, rb_encoding *enc) str = (VALUE)&fake_str; rb_enc_associate(str, enc); + if (rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN) { + rb_raise(rb_eEncodingError, "invalid encoding symbol"); + } + if (st_lookup(global_symbols.sym_id, str, (st_data_t *)&id)) return id; -- cgit v1.2.3