From c58962d43f3ae09782afaddfb3108270eef2929e Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 6 Nov 2014 14:55:20 +0000 Subject: string.c: no exception in QUOTE * string.c (sym_printable): QUOTE() should not raise an exception even on invalid byte sequence. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- string.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'string.c') diff --git a/string.c b/string.c index 5c87424d18..84481dfe8c 100644 --- a/string.c +++ b/string.c @@ -8497,8 +8497,11 @@ sym_printable(const char *s, const char *send, rb_encoding *enc) { while (s < send) { int n; - int c = rb_enc_codepoint_len(s, send, &n, enc); + int c = rb_enc_precise_mbclen(s, send, enc); + if (!MBCLEN_CHARFOUND_P(c)) return FALSE; + n = MBCLEN_CHARFOUND_LEN(c); + c = rb_enc_mbc_to_codepoint(s, send, enc); if (!rb_enc_isprint(c, enc)) return FALSE; s += n; } -- cgit v1.2.3