diff options
author | Ilya Zakharevich <ilya@math.berkeley.edu> | 1999-09-21 15:50:00 -0400 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 1999-09-22 06:47:03 +0000 |
commit | 7821416a3abc763792fc4a61b44bd0259cc39604 (patch) | |
tree | be1f267f0b04f8b36d6e9cabbb07e4bc7027ae5e /regcomp.c | |
parent | 0337d152b9552f2bf363ab0ee8b322eac87f3c9d (diff) | |
download | perl-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.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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)) |