summaryrefslogtreecommitdiff
path: root/scope.c
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2004-01-17 16:12:32 +0000
committerDave Mitchell <davem@fdisolutions.com>2004-01-17 16:12:32 +0000
commit20674a5119e5679a0c9f3c9141d23479fac24d42 (patch)
treea7599adfe749d92c3c1e340401d2cf679de77a8c /scope.c
parentedde27ff7b4e52d7e16fe2146db02a3f205a9ac2 (diff)
downloadperl-20674a5119e5679a0c9f3c9141d23479fac24d42.tar.gz
[perl #24914] freeing a CV reference that was currently being
executed caused coredumps p4raw-id: //depot/perl@22167
Diffstat (limited to 'scope.c')
-rw-r--r--scope.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/scope.c b/scope.c
index 2c2ce3698e..1da8ebe29b 100644
--- a/scope.c
+++ b/scope.c
@@ -1045,8 +1045,10 @@ Perl_leave_scope(pTHX_ I32 base)
break;
case SAVEt_COMPPAD:
PL_comppad = (PAD*)SSPOPPTR;
- if (PL_comppad)
+ if (PL_comppad) {
PL_curpad = AvARRAY(PL_comppad);
+ SvREFCNT_dec(PL_comppad);
+ }
else
PL_curpad = Null(SV**);
break;