diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2020-09-09 14:09:54 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2020-09-09 16:00:59 -0700 |
commit | 68dddcfd25715d14d8052833d6d6a84d277953b7 (patch) | |
tree | 0167fe136a540c7c97a239a55d866684cdbd1bdd | |
parent | de6f36d9b6d702b14ac4ee58dfbcab740c7ca749 (diff) | |
download | grep-68dddcfd25715d14d8052833d6d6a84d277953b7.tar.gz |
grep: fix PCRE JIT test when JIT not available
Problem reported by Thomas Deutschmann (Bug#29446#23).
* src/pcresearch.c (Pexecute): Diagnose PCRE_ERROR_RECURSIONLIMIT.
* tests/pcre-jitstack: Treat recursion limit overflow like stack
overflow.
-rw-r--r-- | src/pcresearch.c | 3 | ||||
-rwxr-xr-x | tests/pcre-jitstack | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/pcresearch.c b/src/pcresearch.c index 2fcbf8e6..e2650832 100644 --- a/src/pcresearch.c +++ b/src/pcresearch.c @@ -311,6 +311,9 @@ Pexecute (void *vcp, char const *buf, size_t size, size_t *match_size, case PCRE_ERROR_MATCHLIMIT: die (EXIT_TROUBLE, 0, _("exceeded PCRE's backtracking limit")); + case PCRE_ERROR_RECURSIONLIMIT: + die (EXIT_TROUBLE, 0, _("exceeded PCRE's recursion limit")); + default: /* For now, we lump all remaining PCRE failures into this basket. If anyone cares to provide sample grep usage that can trigger diff --git a/tests/pcre-jitstack b/tests/pcre-jitstack index d5a621bf..39cda925 100755 --- a/tests/pcre-jitstack +++ b/tests/pcre-jitstack @@ -56,7 +56,8 @@ if test $? != 1; then || fail=1 # If that failed due to stack overflow, don't cry foul. - test $fail = 1 && { grep -q 'stack overflow' err && fail=0 || cat err; } + overflow_pat="stack overflow|exceeded PCRE's recursion limit" + test $fail = 1 && { grep -Eq "$overflow_pat" err && fail=0 || cat err; } fi Exit $fail |