summaryrefslogtreecommitdiff
path: root/regexec.c
diff options
context:
space:
mode:
authorYves Orton <demerphq@gmail.com>2008-11-06 10:44:13 +0000
committerYves Orton <demerphq@gmail.com>2008-11-06 10:44:13 +0000
commitaff3edb5cf5195431c87166ebfe06c4721c5c783 (patch)
tree864155d51457fe84b41d79db4d1b513f69d35fee /regexec.c
parent4954abf77fcbac122d63699b1b3921b4d44d4570 (diff)
downloadperl-aff3edb5cf5195431c87166ebfe06c4721c5c783.tar.gz
Resolve perl #60344: Regex lookbehind failure after an (if)then|else in perl 5.10
During the de-recursivization it looks like Dave M forgot to reset the 'logical' flag after using it, which in turn causes UNLESSM/IFTHEN when used after a LOGICAL operator to be incorrectly intrepreted. This change resets the logical flag after each time it is stored in ST.logical. p4raw-id: //depot/perl@34746
Diffstat (limited to 'regexec.c')
-rw-r--r--regexec.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/regexec.c b/regexec.c
index 326d92a839..9bd5f0ec76 100644
--- a/regexec.c
+++ b/regexec.c
@@ -4983,6 +4983,7 @@ NULL
do_ifmatch:
ST.me = scan;
ST.logical = logical;
+ logical = 0;
/* execute body of (?...A) */
PUSH_YES_STATE_GOTO(IFMATCH_A, NEXTOPER(NEXTOPER(scan)));
/* NOTREACHED */