summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@gmail.com>2006-07-20 22:03:59 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2006-07-20 22:03:59 +0000
commit56930b20d32463989774eccb7de3dc7d7282b17a (patch)
treebbdf0630f4297fc942d60d9cf67783604b9eeb0a /pp_hot.c
parent69a9b4b8cb205b3194738b7a08fc3fb9f858174f (diff)
downloadperl-56930b20d32463989774eccb7de3dc7d7282b17a.tar.gz
In pp_entersub, accept to handle a CV with a NULL padlist.
This fixes a crash with mod_perl 1.29. p4raw-id: //depot/perl@28603
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/pp_hot.c b/pp_hot.c
index 546d93c22e..fb0a98d19c 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2825,12 +2825,14 @@ try_autoload:
* Owing the speed considerations, we choose instead to search for
* the cv using find_runcv() when calling doeval().
*/
- if (CvDEPTH(cv) >= 2) {
- PERL_STACK_OVERFLOW_CHECK();
- pad_push(padlist, CvDEPTH(cv));
+ if (padlist) {
+ if (CvDEPTH(cv) >= 2) {
+ PERL_STACK_OVERFLOW_CHECK();
+ pad_push(padlist, CvDEPTH(cv));
+ }
+ SAVECOMPPAD();
+ PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv));
}
- SAVECOMPPAD();
- PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv));
if (hasargs)
{
AV* const av = (AV*)PAD_SVl(0);