Make undef $SIG{FOO} ignore the signal FOO
Rafael Garcia-Suarez [Mon, 20 Nov 2006 15:19:36 +0000 (15:19 +0000)]
p4raw-id: //depot/perl@29327

mg.c

diff --git a/mg.c b/mg.c
index e4d7393..494e9fd 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -1459,7 +1459,7 @@ Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg)
            SvREFCNT_dec(to_dec);
        return 0;
     }
-    s = SvPV_force(sv,len);
+    s = SvOK(sv) ? SvPV_force(sv,len) : "IGNORE";
     if (strEQ(s,"IGNORE")) {
        if (i) {
 #ifdef FAKE_PERSISTENT_SIGNAL_HANDLERS