From aa1acf1d4282d44ddfa677d24b7c3c1e951467d6 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 2 Jul 2013 08:22:19 +0000 Subject: encoding.c: validate index * encoding.c (rb_enc_set_index, rb_enc_associate_index): validate argument encoding index. * include/ruby/encoding.h (ENCODING_SET): use rb_enc_set_index() instead of setting inlined bits directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- include/ruby/encoding.h | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'include/ruby') diff --git a/include/ruby/encoding.h b/include/ruby/encoding.h index 1233053063..2cd44eafe1 100644 --- a/include/ruby/encoding.h +++ b/include/ruby/encoding.h @@ -32,14 +32,7 @@ RUBY_SYMBOL_EXPORT_BEGIN RBASIC(obj)->flags &= ~ENCODING_MASK;\ RBASIC(obj)->flags |= (VALUE)(i) << ENCODING_SHIFT;\ } while (0) -#define ENCODING_SET(obj,i) do {\ - VALUE rb_encoding_set_obj = (obj); \ - int encoding_set_enc_index = (i); \ - if (encoding_set_enc_index < ENCODING_INLINE_MAX) \ - ENCODING_SET_INLINED(rb_encoding_set_obj, encoding_set_enc_index); \ - else \ - rb_enc_set_index(rb_encoding_set_obj, encoding_set_enc_index); \ -} while (0) +#define ENCODING_SET(obj,i) rb_enc_set_index((obj), (i)) #define ENCODING_GET_INLINED(obj) (int)((RBASIC(obj)->flags & ENCODING_MASK)>>ENCODING_SHIFT) #define ENCODING_GET(obj) \ -- cgit v1.2.3