diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-03-25 16:58:03 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-03-25 16:58:03 +0000 |
commit | b824ac5f129be6bdc53b500323e8bc1ca754f999 (patch) | |
tree | 2b9ddd22b6eafc0deb38bc53ee8cb5d2744520ae | |
parent | 3358185367fa0b5fd8fca6cf2d3f70aef828f0cf (diff) |
* regcomp.c (set_bm_skip): Need to check the end of the string.
this patch is from https://github.com/k-takata/Onigmo/commit/e5c0e6c36187898bb27960cd66d591f172558848 .
[Backport #12997]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@58102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | regcomp.c | 8 | ||||
-rw-r--r-- | version.h | 2 |
2 files changed, 9 insertions, 1 deletions
@@ -4192,6 +4192,8 @@ set_bm_skip(UChar* s, UChar* end, regex_t* reg, n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, reg->case_fold_flag, p, end, items); clen = enclen(enc, p, end); + if (p + clen > end) + clen = (int )(end - p); for (j = 0; j < n; j++) { if ((items[j].code_len != 1) || (items[j].byte_len != clen)) @@ -4222,6 +4224,8 @@ set_bm_skip(UChar* s, UChar* end, regex_t* reg, n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, reg->case_fold_flag, p, end, items); clen = enclen(enc, p, end); + if (p + clen > end) + clen = (int )(end - p); for (j = 0; j < n; j++) { if ((items[j].code_len != 1) || (items[j].byte_len != clen)) @@ -4265,6 +4269,8 @@ set_bm_skip(UChar* s, UChar* end, regex_t* reg, n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, reg->case_fold_flag, p, end, items); clen = enclen(enc, p, end); + if (p + clen > end) + clen = (int )(end - p); for (j = 0; j < n; j++) { if ((items[j].code_len != 1) || (items[j].byte_len != clen)) @@ -4295,6 +4301,8 @@ set_bm_skip(UChar* s, UChar* end, regex_t* reg, n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, reg->case_fold_flag, p, end, items); clen = enclen(enc, p, end); + if (p + clen > end) + clen = (int )(end - p); for (j = 0; j < n; j++) { if ((items[j].code_len != 1) || (items[j].byte_len != clen)) @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.2.7" #define RUBY_RELEASE_DATE "2017-03-26" -#define RUBY_PATCHLEVEL 434 +#define RUBY_PATCHLEVEL 435 #define RUBY_RELEASE_YEAR 2017 #define RUBY_RELEASE_MONTH 3 |