X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~matthewv/git?a=blobdiff_plain;f=pcre_dfa_exec.c;h=170ce6a0016ca3225f098f0be0a1f3535502e482;hb=de39c0bc662d54aa6719d0ccec125f9e4f5aa6d6;hp=fb0c7e805dc32e6b4e59d3a65929dd071f778fb1;hpb=e5f50570097752e9d8d68df700473362e385bda6;p=pcre3.git diff --git a/pcre_dfa_exec.c b/pcre_dfa_exec.c index fb0c7e8..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, @@ -3242,7 +3243,7 @@ md->callout_data = NULL; if (extra_data != NULL) { - unsigned int flags = extra_data->flags; + unsigned long int flags = extra_data->flags; if ((flags & PCRE_EXTRA_STUDY_DATA) != 0) study = (const pcre_study_data *)extra_data->study_data; if ((flags & PCRE_EXTRA_MATCH_LIMIT) != 0) return PCRE_ERROR_DFA_UMLIMIT;