summaryrefslogtreecommitdiff
path: root/pcre_dfa_exec.c
diff options
context:
space:
mode:
authorph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2015-03-24 10:33:21 +0000
committerph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2015-03-24 10:33:21 +0000
commit0838dce0fce0c9fc927fd5509da3151004606052 (patch)
tree41a98b792689c886e32c1b7a76feb058a7fc0c3e /pcre_dfa_exec.c
parente4f2068624710ea188ea06de00402a599e4154af (diff)
downloadpcre-0838dce0fce0c9fc927fd5509da3151004606052.tar.gz
Fix bugs caused by (?!) as a condition (which is converted to OP_FAIL).
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1534 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'pcre_dfa_exec.c')
-rw-r--r--pcre_dfa_exec.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/pcre_dfa_exec.c b/pcre_dfa_exec.c
index 87f4aef..170ce6a 100644
--- a/pcre_dfa_exec.c
+++ b/pcre_dfa_exec.c
@@ -2736,9 +2736,10 @@ for (;;)
condcode == OP_DNRREF)
return PCRE_ERROR_DFA_UCOND;
- /* The DEFINE condition is always false */
+ /* The DEFINE condition is always false, and the assertion (?!) is
+ converted to OP_FAIL. */
- if (condcode == OP_DEF)
+ if (condcode == OP_DEF || condcode == OP_FAIL)
{ ADD_ACTIVE(state_offset + codelink + LINK_SIZE + 1, 0); }
/* The only supported version of OP_RREF is for the value RREF_ANY,