*** empty log message ***
authorKarl Heuer <kwzh@gnu.org>
Wed, 23 Feb 1994 23:04:30 +0000 (23:04 +0000)
committerKarl Heuer <kwzh@gnu.org>
Wed, 23 Feb 1994 23:04:30 +0000 (23:04 +0000)
regex.c

diff --git a/regex.c b/regex.c
index 532d753..c66a223 100644 (file)
--- a/regex.c
+++ b/regex.c
@@ -4463,8 +4463,10 @@ re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
          mcnt = (int) Sword;
         matchsyntax:
          PREFETCH ();
-         if (SYNTAX (*d++) != (enum syntaxcode) mcnt)
-            goto fail;
+         /* Can't use *d++ here; SYNTAX may be an unsafe macro.  */
+         d++;
+         if (SYNTAX (d[-1]) != (enum syntaxcode) mcnt)
+           goto fail;
           SET_REGS_MATCHED ();
          break;
 
@@ -4478,8 +4480,10 @@ re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
          mcnt = (int) Sword;
         matchnotsyntax:
          PREFETCH ();
-         if (SYNTAX (*d++) == (enum syntaxcode) mcnt)
-            goto fail;
+         /* Can't use *d++ here; SYNTAX may be an unsafe macro.  */
+         d++;
+         if (SYNTAX (d[-1]) == (enum syntaxcode) mcnt)
+           goto fail;
          SET_REGS_MATCHED ();
           break;