From 28362ed4fae6969b5a8878591a5a06eadf114e03 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Sat, 29 Dec 2018 20:06:08 -0800 Subject: [PATCH] Fix bug #77371 (heap buffer overflow in mb regex functions - compile_string_node) --- ext/mbstring/oniguruma/regcomp.c | 1 + ext/mbstring/tests/bug77371.phpt | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 ext/mbstring/tests/bug77371.phpt diff --git a/ext/mbstring/oniguruma/regcomp.c b/ext/mbstring/oniguruma/regcomp.c index 995e1d88615..4469f33a56d 100644 --- a/ext/mbstring/oniguruma/regcomp.c +++ b/ext/mbstring/oniguruma/regcomp.c @@ -524,6 +524,7 @@ compile_string_node(Node* node, regex_t* reg) for (; p < end; ) { len = enclen(enc, p); + if (p + len > end) len = end - p; if (len == prev_len) { slen++; } diff --git a/ext/mbstring/tests/bug77371.phpt b/ext/mbstring/tests/bug77371.phpt new file mode 100644 index 00000000000..f23445bd091 --- /dev/null +++ b/ext/mbstring/tests/bug77371.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #77371 (heap buffer overflow in mb regex functions - compile_string_node) +--SKIPIF-- + +--FILE-- + +--EXPECT-- +bool(false) \ No newline at end of file