X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=taint.c;h=620284cd985e299e430ba5d155902632c8f744df;hb=2dd6f5a35a53bce8ba17b896d0b97a638e612121;hp=ed1af7453b1d9ffb62d56e748140f068996a3d4c;hpb=86c11942206ec09dd2a486bb22552aa2f170e322;p=p5sagit%2Fp5-mst-13.2.git diff --git a/taint.c b/taint.c index ed1af74..620284c 100644 --- a/taint.c +++ b/taint.c @@ -1,7 +1,7 @@ /* taint.c * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, 2005, 2006, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -25,6 +25,7 @@ void Perl_taint_proper(pTHX_ const char *f, const char *s) { #if defined(HAS_SETEUID) && defined(DEBUGGING) + dVAR; # if Uid_t_size == 1 { const UV uid = PL_uid; @@ -60,7 +61,7 @@ Perl_taint_proper(pTHX_ const char *f, const char *s) else ug = " while running with -T switch"; if (PL_unsafe || PL_taint_warn) { - if(ckWARN(WARN_TAINT)) + if(ckWARN_d(WARN_TAINT)) Perl_warner(aTHX_ packWARN(WARN_TAINT), f, s, ug); } else { @@ -72,6 +73,7 @@ Perl_taint_proper(pTHX_ const char *f, const char *s) void Perl_taint_env(pTHX) { + dVAR; SV** svp; MAGIC* mg; const char* const *e; @@ -80,6 +82,9 @@ Perl_taint_env(pTHX) "CDPATH", /* ksh dain bramage #1 */ "ENV", /* ksh dain bramage #2 */ "BASH_ENV", /* bash dain bramage -- I guess it's contagious */ +#ifdef WIN32 + "PERL5SHELL", /* used for system() on Windows */ +#endif NULL }; @@ -128,7 +133,7 @@ Perl_taint_env(pTHX) } #endif /* VMS */ - svp = hv_fetch(GvHVn(PL_envgv),"PATH",4,FALSE); + svp = hv_fetchs(GvHVn(PL_envgv),"PATH",FALSE); if (svp && *svp) { if (SvTAINTED(*svp)) { TAINT; @@ -142,7 +147,7 @@ Perl_taint_env(pTHX) #ifndef VMS /* tainted $TERM is okay if it contains no metachars */ - svp = hv_fetch(GvHVn(PL_envgv),"TERM",4,FALSE); + svp = hv_fetchs(GvHVn(PL_envgv),"TERM",FALSE); if (svp && *svp && SvTAINTED(*svp)) { STRLEN len; const bool was_tainted = PL_tainted; @@ -161,7 +166,7 @@ Perl_taint_env(pTHX) #endif /* !VMS */ for (e = misc_env; *e; e++) { - SV ** const svp = hv_fetch(GvHVn(PL_envgv), *e, strlen(*e), FALSE); + SV * const * const svp = hv_fetch(GvHVn(PL_envgv), *e, strlen(*e), FALSE); if (svp && *svp != &PL_sv_undef && SvTAINTED(*svp)) { TAINT; taint_proper("Insecure $ENV{%s}%s", *e);