X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=taint.c;h=620284cd985e299e430ba5d155902632c8f744df;hb=a25ce5f3442bbcc3cab66c0ed964d3ef6a8e8ca3;hp=9de7748c9f58b3792ea8373ea248829efd685dce;hpb=0bd48802b00657d8da2da444a1c97fb25cb7d562;p=p5sagit%2Fp5-mst-13.2.git diff --git a/taint.c b/taint.c index 9de7748..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;