solve one taint problem
[p5sagit/p5-mst-13.2.git] / mg.c
diff --git a/mg.c b/mg.c
index ba90587..4da71b1 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -275,7 +275,7 @@ Perl_mg_clear(pTHX_ SV *sv)
     for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {
        MGVTBL* vtbl = mg->mg_virtual;
        /* omit GSKIP -- never set here */
-       
+
        if (vtbl && vtbl->svt_clear)
            CALL_FPTR(vtbl->svt_clear)(aTHX_ sv, mg);
     }
@@ -408,7 +408,7 @@ Perl_magic_regdatum_get(pTHX_ SV *sv, MAGIC *mg)
                    i = t;
                else                    /* @- */
                    i = s;
-               
+
                if (i > 0 && PL_reg_match_utf8) {
                    char *b = rx->subbeg;
                    if (b)
@@ -454,7 +454,7 @@ Perl_magic_len(pTHX_ SV *sv, MAGIC *mg)
                    char *s    = rx->subbeg + s1;
                    char *send = rx->subbeg + t1;
 
-                   i = t1 - s1;
+                    i = t1 - s1;
                    if (is_utf8_string((U8*)s, i))
                        i = Perl_utf8_length(aTHX_ (U8*)s, (U8*)send);
                }
@@ -548,11 +548,11 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
 #ifdef MACOS_TRADITIONAL
             {
                  char msg[256];
-       
+
                  sv_setnv(sv,(double)gMacPerl_OSErr);
-                 sv_setpv(sv, gMacPerl_OSErr ? GetSysErrText(gMacPerl_OSErr, msg) : "");       
+                 sv_setpv(sv, gMacPerl_OSErr ? GetSysErrText(gMacPerl_OSErr, msg) : "");
             }
-#else  
+#else
 #ifdef VMS
             {
 #                include <descrip.h>
@@ -1171,7 +1171,7 @@ Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg)
        i = whichsig(s);        /* ...no, a brick */
        if (!i) {
            if (ckWARN(WARN_SIGNAL))
-               Perl_warner(aTHX_ WARN_SIGNAL, "No such signal: SIG%s", s);
+               Perl_warner(aTHX_ packWARN(WARN_SIGNAL), "No such signal: SIG%s", s);
            return 0;
        }
 #if defined(FAKE_PERSISTENT_SIGNAL_HANDLERS) || defined(FAKE_DEFAULT_SIGNAL_HANDLERS)
@@ -1521,7 +1521,7 @@ Perl_magic_setpos(pTHX_ SV *sv, MAGIC *mg)
        sv_pos_u2b(lsv, &p, 0);
        pos = p;
     }
-       
+
     mg->mg_len = pos;
     mg->mg_flags &= ~MGf_MINMATCH;
 
@@ -1945,7 +1945,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
                    else if (isWARN_on(sv, WARN_ALL) && !any_fatals) {
                        PL_compiling.cop_warnings = pWARN_ALL;
                        PL_dowarn |= G_WARN_ONCE ;
-                   }   
+                   }
                     else {
                        if (specialWARN(PL_compiling.cop_warnings))
                            PL_compiling.cop_warnings = newSVsv(sv) ;
@@ -2347,9 +2347,11 @@ Perl_sighandler(int sig)
     if (PL_scopestack_ix < PL_scopestack_max - 3)
        flags |= 16;
 
-    if (!PL_psig_ptr[sig])
-       Perl_die(aTHX_ "Signal SIG%s received, but no signal handler set.\n",
-           PL_sig_name[sig]);
+    if (!PL_psig_ptr[sig]) {
+               PerlIO_printf(Perl_error_log, "Signal SIG%s received, but no signal handler set.\n",
+                                PL_sig_name[sig]);
+               exit(sig);
+       }
 
     /* Max number of items pushed there is 3*n or 4. We cannot fix
        infinity, so we fix 4 (in fact 5): */
@@ -2372,7 +2374,7 @@ Perl_sighandler(int sig)
 
     if (!cv || !CvROOT(cv)) {
        if (ckWARN(WARN_SIGNAL))
-           Perl_warner(aTHX_ WARN_SIGNAL, "SIG%s handler \"%s\" not defined.\n",
+           Perl_warner(aTHX_ packWARN(WARN_SIGNAL), "SIG%s handler \"%s\" not defined.\n",
                PL_sig_name[sig], (gv ? GvENAME(gv)
                                : ((cv && CvGV(cv))
                                   ? GvENAME(CvGV(cv))
@@ -2493,4 +2495,3 @@ unwind_handler_stack(pTHX_ void *p)
 }
 
 
-