about summary refs log tree commit diff
path: root/src/regex
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2013-02-01 01:10:59 -0500
committerRich Felker <dalias@aerifal.cx>2013-02-01 01:10:59 -0500
commitae4b0b96d63fe3cbd70008350f998570c9e91f7f (patch)
treef4432dd5c32c3eba67723f6c5a27a8564b05f3cc /src/regex
parent725c55528dff9eefbc88a943749f3bc89bcb433f (diff)
downloadmusl-ae4b0b96d63fe3cbd70008350f998570c9e91f7f.tar.gz
musl-ae4b0b96d63fe3cbd70008350f998570c9e91f7f.tar.xz
musl-ae4b0b96d63fe3cbd70008350f998570c9e91f7f.zip
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.
Diffstat (limited to 'src/regex')
-rw-r--r--src/regex/regexec.c3
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