From b65bf1b459be3cef19dcd8edbce59fc1d8799247 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Tue, 21 Feb 2017 19:38:36 +0000 Subject: [PATCH] de-fuzz: make sure recursion stack always has a valid start location for the recursion. --- include/boost/regex/v4/perl_matcher_non_recursive.hpp | 1 + include/boost/regex/v4/perl_matcher_recursive.hpp | 1 + 2 files changed, 2 insertions(+) diff --git a/include/boost/regex/v4/perl_matcher_non_recursive.hpp b/include/boost/regex/v4/perl_matcher_non_recursive.hpp index 6af90fb7..88bceed3 100644 --- a/include/boost/regex/v4/perl_matcher_non_recursive.hpp +++ b/include/boost/regex/v4/perl_matcher_non_recursive.hpp @@ -1719,6 +1719,7 @@ bool perl_matcher::unwind_recursion(bool r) recursion_stack.back().idx = pmp->recursion_id; recursion_stack.back().preturn_address = pmp->preturn_address; recursion_stack.back().results = pmp->results; + recursion_stack.back().location_of_start = position; } boost::BOOST_REGEX_DETAIL_NS::inplace_destroy(pmp++); m_backup_state = pmp; diff --git a/include/boost/regex/v4/perl_matcher_recursive.hpp b/include/boost/regex/v4/perl_matcher_recursive.hpp index 023e62dd..7cc54ca2 100644 --- a/include/boost/regex/v4/perl_matcher_recursive.hpp +++ b/include/boost/regex/v4/perl_matcher_recursive.hpp @@ -996,6 +996,7 @@ bool perl_matcher::match_match() recursion_stack.push_back(recursion_info()); recursion_stack.back().preturn_address = saved_state; recursion_stack.back().results = *m_presult; + recursion_stack.back().location_of_start = position; return false; } return true;