Projects
openEuler:20.03:LTS:SP1
boost
_service:tar_scm_kernel_repo:backport-Disallow-...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm_kernel_repo:backport-Disallow-repeating-a-case-change-group.patch of Package boost
From 370afe3f446c69a7ccc4c09f056272346afc264b Mon Sep 17 00:00:00 2001 From: zhangyiru <zhangyiru3@huawei.com> Date: Thu, 14 Oct 2021 15:55:56 -0400 Subject: [PATCH] Disallow repeating a case-change group fix assertion failed: https://github.com/boostorg/regex/issues/151 Signed-off-by: zhangyiru <zhangyiru3@huawei.com> --- boost/regex/v4/basic_regex_parser.hpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/boost/regex/v4/basic_regex_parser.hpp b/boost/regex/v4/basic_regex_parser.hpp index 6c7065f05..2ce615943 100644 --- a/boost/regex/v4/basic_regex_parser.hpp +++ b/boost/regex/v4/basic_regex_parser.hpp @@ -1042,6 +1042,7 @@ bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_ case syntax_element_jump: case syntax_element_startmark: case syntax_element_backstep: + case syntax_element_toggle_case: // can't legally repeat any of the above: fail(regex_constants::error_badrepeat, m_position - m_base); return false; @@ -3116,7 +3117,13 @@ bool basic_regex_parser<charT, traits>::unwind_alts(std::ptrdiff_t last_paren_st m_alt_jumps.pop_back(); this->m_pdata->m_data.align(); re_jump* jmp = static_cast<re_jump*>(this->getaddress(jump_offset)); - BOOST_ASSERT(jmp->type == syntax_element_jump); + if (jmp->type != syntax_element_jump) + { + // Something really bad happened, this used to be an assert, + // but we'll make it an error just in case we should ever get here. + fail(regex_constants::error_unknown, this->m_position - this->m_base, "Internal logic failed while compiling the expression, probably you added a repeat to something non-repeatable!"); + return false; + } jmp->alt.i = this->m_pdata->m_data.size() - jump_offset; } return true; -- 2.27.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.