summaryrefslogtreecommitdiff
path: root/pp_ctl.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-06-30 04:37:33 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-06-30 04:37:33 +0000
commit7032098e3624717c340da3e1b7cc1d22959257c0 (patch)
tree04ad10e123399e2ce2574436560a9e2a3d96c671 /pp_ctl.c
parent0cacb523b3d9abfe9ac5761f31a2c11458e98c49 (diff)
downloadperl-7032098e3624717c340da3e1b7cc1d22959257c0.tar.gz
dounwind() may cause POPSUB() to diddle the wrong PL_curpad
when @_ is modified, causing coredumps p4raw-id: //depot/perl@6291
Diffstat (limited to 'pp_ctl.c')
-rw-r--r--pp_ctl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 06bb96447b..9af9e8262c 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -913,6 +913,7 @@ PP(pp_sort)
cx->blk_sub.savearray = GvAV(PL_defgv);
GvAV(PL_defgv) = (AV*)SvREFCNT_inc(av);
#endif /* USE_THREADS */
+ cx->blk_sub.oldcurpad = PL_curpad;
cx->blk_sub.argarray = av;
}
qsortsv((myorigmark+1), max,
@@ -2308,6 +2309,7 @@ PP(pp_goto)
cx->blk_sub.savearray = GvAV(PL_defgv);
GvAV(PL_defgv) = (AV*)SvREFCNT_inc(av);
#endif /* USE_THREADS */
+ cx->blk_sub.oldcurpad = PL_curpad;
cx->blk_sub.argarray = av;
++mark;