Fixes obscure bug that manifests itself by.
Artur Bergman [Tue, 2 Oct 2001 10:40:57 +0000 (10:40 +0000)]
local $!=0;undef*STDOUT;#segfaults
Has been around for a while. Possible other magic IO vars are
possibly affected as well. Reported by Jos Boumans.

p4raw-id: //depot/perl@12303

mg.c

diff --git a/mg.c b/mg.c
index 4fc2ffc..0fb1a86 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -1894,6 +1894,8 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
     case '|':
        {
            IO *io = GvIOp(PL_defoutgv);
+           if(!io)
+             break;
            if ((SvIOK(sv) ? SvIVX(sv) : sv_2iv(sv)) == 0)
                IoFLAGS(io) &= ~IOf_FLUSH;
            else {