summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@engin.umich.edu>1997-02-25 17:00:49 -0500
committerChip Salzenberg <chip@atlantic.net>1997-02-25 13:12:02 +1200
commit20efc0829f6564c44574762adb07e8865bc14026 (patch)
treed07fa643b75a8f280b75a04451bc321ad3f51d96
parent907a881cde89c56bc61d3f314c0efb8754ca472a (diff)
downloadperl-20efc0829f6564c44574762adb07e8865bc14026.tar.gz
_90 op/tie.t gets "Segmentation fault" with Sarathy's perl_call patch
On Tue, 25 Feb 1997 14:41:30 EST, Chip Salzenberg wrote: >According to Gurusamy Sarathy: >> On Tue, 25 Feb 1997 10:07:02 PST, David Dyck wrote: >> >summary: >> > op/tie.t gets "Segmentation fault" with Sarathy's perl_call patch >> >> Try this patch. > >That's got it. Now pureperl doesn't complain about op/tie.t. > Good. This here patch sets up the flag in a few more places (to avoid redundant sigjmp()s which was why t/op/tie.t triggered execution of docatch()). This patch fixes that flag leak. p5p-msgid: <199702252200.RAA16853@aatma.engin.umich.edu>
-rw-r--r--perl.c4
-rw-r--r--pp_ctl.c1
2 files changed, 5 insertions, 0 deletions
diff --git a/perl.c b/perl.c
index 9f3942e68f..8794dd69fe 100644
--- a/perl.c
+++ b/perl.c
@@ -509,6 +509,7 @@ setuid perl scripts securely.\n");
calllist(endav);
return STATUS_NATIVE_EXPORT;
case 3:
+ mustcatch = FALSE;
PerlIO_printf(PerlIO_stderr(), "panic: top_env\n");
return 1;
}
@@ -800,6 +801,7 @@ PerlInterpreter *sv_interp;
#endif
return STATUS_NATIVE_EXPORT;
case 3:
+ mustcatch = FALSE;
if (!restartop) {
PerlIO_printf(PerlIO_stderr(), "panic: restartop\n");
FREETMPS;
@@ -1030,6 +1032,7 @@ I32 flags; /* See G_* flags in cop.h */
my_exit_jump();
/* NOTREACHED */
case 3:
+ mustcatch = FALSE;
if (restartop) {
op = restartop;
restartop = 0;
@@ -1140,6 +1143,7 @@ restart:
my_exit_jump();
/* NOTREACHED */
case 3:
+ mustcatch = FALSE;
if (restartop) {
op = restartop;
restartop = 0;
diff --git a/pp_ctl.c b/pp_ctl.c
index c2f136163a..de3c13b472 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -1968,6 +1968,7 @@ OP *o;
PerlIO_printf(PerlIO_stderr(), "panic: restartop\n");
break;
}
+ mustcatch = FALSE;
op = restartop;
restartop = 0;
/* FALL THROUGH */