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
commitb3a3b3a1da8f5142edf3e194532b08316f895282 (patch)
treea7599adfe749d92c3c1e340401d2cf679de77a8c /scope.c
parentd3dc607d97b8af5aa45522c8a75a78694d3c7733 (diff)
downloadperl-b3a3b3a1da8f5142edf3e194532b08316f895282.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;