diff options
author | Rich Felker <dalias@aerifal.cx> | 2013-02-01 01:10:59 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2013-02-01 01:10:59 -0500 |
commit | ae4b0b96d63fe3cbd70008350f998570c9e91f7f (patch) | |
tree | f4432dd5c32c3eba67723f6c5a27a8564b05f3cc | |
parent | 725c55528dff9eefbc88a943749f3bc89bcb433f (diff) | |
download | musl-ae4b0b96d63fe3cbd70008350f998570c9e91f7f.tar.gz |
revert regex "cleanup" that seems unjustified and may break backtracking
it's not clear to me at the moment whether the code that was removed
(and which is now being re-added) is needed, but it's far from being a
no-op, and i don't want to risk breaking regex in this release.
-rw-r--r-- | src/regex/regexec.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/regex/regexec.c b/src/regex/regexec.c index 674c5907..855cef57 100644 --- a/src/regex/regexec.c +++ b/src/regex/regexec.c @@ -596,6 +596,7 @@ tre_tnfa_run_backtrack(const tre_tnfa_t *tnfa, const void *string, started from. */ int next_c_start; const char *str_byte_start; + int pos_start = -1; #ifdef TRE_MBSTATE mbstate_t mbstate_start; #endif /* TRE_MBSTATE */ @@ -675,7 +676,9 @@ tre_tnfa_run_backtrack(const tre_tnfa_t *tnfa, const void *string, } state = NULL; + pos = pos_start; GET_NEXT_WCHAR(); + pos_start = pos; next_c_start = next_c; str_byte_start = str_byte; #ifdef TRE_MBSTATE |