Переглянути джерело

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.
Rich Felker 12 роки тому
батько
коміт
ae4b0b96d6
1 змінених файлів з 3 додано та 0 видалено
  1. 3 0
      src/regex/regexec.c

+ 3 - 0
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