代码拉取完成,页面将自动刷新
From d4cf99d30bd5f6a8a4ababd0b9d7b06f3a479a24 Mon Sep 17 00:00:00 2001
From: "K.Takata" <kentkt@csc.jp>
Date: Thu, 1 Aug 2019 21:27:51 +0900
Subject: [PATCH] Fix out-of-bounds read in parse_char_class() (Close #139)
/[\x{111111}]/ causes out-of-bounds read when encoding is a single byte
encoding. \x{111111} is an invalid codepoint for a single byte encoding.
Check if it is a valid codepoint.
---
regenc.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff -Naur a/regenc.c b/regenc.c
--- a/regenc.c 2020-10-20 14:19:32.284000000 +0800
+++ b/regenc.c 2020-10-20 14:22:55.412000000 +0800
@@ -625,18 +625,23 @@
}
extern int
-onigenc_single_byte_code_to_mbclen(OnigCodePoint code ARG_UNUSED, OnigEncoding enc ARG_UNUSED)
+onigenc_single_byte_code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED)
{
+ if (code > 0xff)
+ return ONIGERR_INVALID_CODE_POINT_VALUE;
return 1;
}
extern int
onigenc_single_byte_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc ARG_UNUSED)
{
+ if (code > 0xff) {
#ifdef RUBY
- if (code > 0xff)
rb_raise(rb_eRangeError, "%u out of char range", code);
+#else
+ return ONIGERR_INVALID_CODE_POINT_VALUE;
#endif
+ }
*buf = (UChar )(code & 0xff);
return 1;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。