diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1997-10-28 15:06:06 -0500 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1997-11-26 01:17:46 +0000 |
commit | 00d579c5f79d1baaed14ef28a9c9de3c6d64f4d0 (patch) | |
tree | 6cdc1e4f43c513d2f6fef828766d7983a081569d /mg.c | |
parent | c31fac668b253062b943c71d3452e678b6f02609 (diff) | |
download | perl-00d579c5f79d1baaed14ef28a9c9de3c6d64f4d0.tar.gz |
[win32] Sync a change from local repository.
Message-Id: <199710290106.UAA11485@aatma.engin.umich.edu>
Subject: [PATCH] Re: Core dump from using sockets w/ system or open(pipe) or "`"
p4raw-id: //depot/win32/perl@306
Diffstat (limited to 'mg.c')
-rw-r--r-- | mg.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -1733,10 +1733,10 @@ Signal_t sighandler(int sig) { dSP; - GV *gv; + GV *gv = Nullgv; HV *st; SV *sv, *tSv = Sv; - CV *cv; + CV *cv = Nullcv; AV *oldstack; OP *myop = op; U32 flags = 0; @@ -1788,8 +1788,11 @@ sighandler(int sig) if (!cv || !CvROOT(cv)) { if (dowarn) warn("SIG%s handler \"%s\" not defined.\n", - sig_name[sig], GvENAME(gv) ); - return; + sig_name[sig], (gv ? GvENAME(gv) + : ((cv && CvGV(cv)) + ? GvENAME(CvGV(cv)) + : "__ANON__"))); + goto cleanup; } oldstack = curstack; @@ -1812,6 +1815,7 @@ sighandler(int sig) perl_call_sv((SV*)cv, G_DISCARD); SWITCHSTACK(signalstack, oldstack); +cleanup: if (flags & 1) savestack_ix -= 8; /* Unprotect save in progress. */ if (flags & 2) { |