summaryrefslogtreecommitdiff
path: root/pp_ctl.c
diff options
context:
space:
mode:
authorIlya Zakharevich <ilya@math.berkeley.edu>1998-07-09 14:47:25 -0400
committerGurusamy Sarathy <gsar@cpan.org>1998-07-11 23:43:37 +0000
commit2cd61cdbd64958437da8294b84109bc8b63ab360 (patch)
treec77caa477be19c09cbca09e677a56b48de14cce2 /pp_ctl.c
parent1e509ade7aa6b4feabef1bbe58cd68a39b4085af (diff)
downloadperl-2cd61cdbd64958437da8294b84109bc8b63ab360.tar.gz
add patch, along with all the missing bits, and doc tweaks
Message-Id: <199807092247.SAA06314@monk.mps.ohio-state.edu> Subject: Re: [PATCH 5.004_71] Secure RE update p4raw-id: //depot/perl@1444
Diffstat (limited to 'pp_ctl.c')
-rw-r--r--pp_ctl.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 88ec2131a4..672e0e260c 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -67,6 +67,14 @@ PP(pp_regcmaybe)
return NORMAL;
}
+PP(pp_regcreset)
+{
+ /* XXXX Should store the old value to allow for tie/overload - and
+ restore in regcomp, where marked with XXXX. */
+ reginterp_cnt = 0;
+ return NORMAL;
+}
+
PP(pp_regcomp)
{
djSP;
@@ -99,9 +107,13 @@ PP(pp_regcomp)
ReREFCNT_dec(pm->op_pmregexp);
pm->op_pmregexp = Null(REGEXP*); /* crucial if regcomp aborts */
}
+ if (op->op_flags & OPf_SPECIAL)
+ reginterp_cnt = I32_MAX; /* Mark as safe. */
pm->op_pmflags = pm->op_pmpermflags; /* reset case sensitivity */
pm->op_pmregexp = CALLREGCOMP(t, t + len, pm);
+ reginterp_cnt = 0; /* XXXX Be extra paranoid - needed
+ inside tie/overload accessors. */
}
}