aboutsummaryrefslogtreecommitdiffstats
path: root/src/regex.c
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>1996-04-12 22:57:28 +0000
committerRichard M. Stallman <[email protected]>1996-04-12 22:57:28 +0000
commitffd76827b0eda72f38f6972d49b38bdd6a01602a (patch)
tree19d3f553ebf8a3060b9c0f02842749d86ec95fb1 /src/regex.c
parente049945bc05c5b51cd0d8f0cd26d554c942f59a1 (diff)
(MAX_FAILURE_ITEMS): Use 5 instead of actual number of regs.
Diffstat (limited to 'src/regex.c')
-rw-r--r--src/regex.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/regex.c b/src/regex.c
index 7128c4e87c..e6d04a57df 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -1004,7 +1004,7 @@ static const char *re_error_msgid[] =
#endif
/* Roughly the maximum number of failure points on the stack. Would be
- exactly that if always used MAX_FAILURE_SPACE each time we failed.
+ exactly that if always used MAX_FAILURE_ITEMS items each time we failed.
This is a variable only so users of regex can assign to it; we never
change it ourselves. */
#if defined (MATCH_MAY_ALLOCATE)
@@ -1221,7 +1221,10 @@ typedef struct
#endif
/* We push at most this many items on the stack. */
-#define MAX_FAILURE_ITEMS ((num_regs - 1) * NUM_REG_ITEMS + NUM_NONREG_ITEMS)
+/* We used to use (num_regs - 1), which is the number of registers
+ this regexp will save; but that was changed to 5
+ to avoid stack overflow for a regexp with lots of parens. */
+#define MAX_FAILURE_ITEMS (5 * NUM_REG_ITEMS + NUM_NONREG_ITEMS)
/* We actually push this many items. */
#define NUM_FAILURE_ITEMS \