aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--enc/euc_jp.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d667367790..a5fe50de08 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Oct 4 15:11:48 2015 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * enc/euc_jp.c (mbc_case_fold): check given string is valid or not,
+ and if invalid, return 1. [Bug #11486]
+
Sun Oct 4 10:09:57 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* dir.c (rb_dir_getwd): normalize OS path to UTF-8 on OS X.
diff --git a/enc/euc_jp.c b/enc/euc_jp.c
index d0852c3daa..3088dfd64b 100644
--- a/enc/euc_jp.c
+++ b/enc/euc_jp.c
@@ -378,11 +378,12 @@ mbc_case_fold(OnigCaseFoldType flag,
return 1;
}
else {
- OnigCodePoint code;
int len;
+ len = mbc_enc_len(p, end, enc);
+ if (len <= 0) return 1;
code = get_lower_case(mbc_to_code(p, end, enc));
- len = code_to_mbc(code, lower, enc);
+ /* assuming case folding in euc-jp doesn't change length */
(*pp) += len;
return len; /* return byte length of converted char to lower */
}