summaryrefslogtreecommitdiff
path: root/regcomp.c
diff options
context:
space:
mode:
authorIlya Zakharevich <ilya@math.berkeley.edu>1999-09-21 15:50:00 -0400
committerJarkko Hietaniemi <jhi@iki.fi>1999-09-22 06:47:03 +0000
commit7821416a3abc763792fc4a61b44bd0259cc39604 (patch)
treebe1f267f0b04f8b36d6e9cabbb07e4bc7027ae5e /regcomp.c
parent0337d152b9552f2bf363ab0ee8b322eac87f3c9d (diff)
downloadperl-7821416a3abc763792fc4a61b44bd0259cc39604.tar.gz
To: Mailing list Perl5 <perl5-porters@perl.org>
Subject: [PATCH 5.005_61] regfree could segfault with -Mre=debug Date: Tue, 21 Sep 1999 19:50:00 -0400 Message-ID: <19990921195000.A23938@monk.mps.ohio-state.edu> From: Ilya Zakharevich <ilya@math.ohio-state.edu> To: Mailing list Perl5 <perl5-porters@perl.org> Subject: [PATCH 5.005_61] More verbose -Mre=debug Date: Tue, 21 Sep 1999 22:29:55 -0400 Message-ID: <19990921222955.A25094@monk.mps.ohio-state.edu> p4raw-id: //depot/cfgperl@4215
Diffstat (limited to 'regcomp.c')
-rw-r--r--regcomp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/regcomp.c b/regcomp.c
index ceab482936..64c06f0027 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -3245,7 +3245,7 @@ Perl_regprop(pTHX_ SV *sv, regnode *o)
k = PL_regkind[(U8)OP(o)];
if (k == EXACT)
- Perl_sv_catpvf(aTHX_ sv, " <%s%*s%s>", PL_colors[0],
+ Perl_sv_catpvf(aTHX_ sv, " <%s%.*s%s>", PL_colors[0],
STR_LEN(o), STRING(o), PL_colors[1]);
else if (k == CURLY) {
if (OP(o) == CURLYM || OP(o) == CURLYN)
@@ -3287,6 +3287,9 @@ Perl_pregfree(pTHX_ struct regexp *r)
{
dTHR;
DEBUG_r(if (!PL_colorset) reginitcolors());
+
+ if (!r || (--r->refcnt > 0))
+ return;
DEBUG_r(PerlIO_printf(Perl_debug_log,
"%sFreeing REx:%s `%s%.60s%s%s'\n",
PL_colors[4],PL_colors[5],PL_colors[0],
@@ -3294,9 +3297,6 @@ Perl_pregfree(pTHX_ struct regexp *r)
PL_colors[1],
(strlen(r->precomp) > 60 ? "..." : "")));
-
- if (!r || (--r->refcnt > 0))
- return;
if (r->precomp)
Safefree(r->precomp);
if (RX_MATCH_COPIED(r))