summaryrefslogtreecommitdiff
path: root/enc
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-05-20 13:32:16 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-05-20 13:32:16 +0000
commit2053b5f4538e157581b8fbf96a30624a2594158c (patch)
tree8d5b386a9583996920f3182ba45dc302e67b0181 /enc
parent44faaf110f45bf5b2591409959f5af30f537007a (diff)
* enc/shift_jis.c (code_to_mbclen): return
ONIGERR_INVALID_CODE_POINT_VALUE if the code is invalid. * enc/shift_jis.c (tr_next): increment character until the code is a valid character. [ruby-dev:45652] [Bug #6450] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enc')
-rw-r--r--enc/shift_jis.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/enc/shift_jis.c b/enc/shift_jis.c
index f309dcfd42..e2bcaec189 100644
--- a/enc/shift_jis.c
+++ b/enc/shift_jis.c
@@ -230,6 +230,9 @@ code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED)
return ONIGERR_INVALID_CODE_POINT_VALUE;
}
else if (code <= 0xffff) {
+ int low = code & 0xff;
+ if (low < 0x40 || low == 0x7f || 0xfc < low)
+ return ONIGERR_INVALID_CODE_POINT_VALUE;
return 2;
}
else