X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=taint.c;h=1eab0827af51d803fbb0716d20f00199f674cca4;hb=a922f900a6916d70770b1348cbacd5ea3df02a9f;hp=e0869a9bad91686b5bdd4c079c2ec134ad064f54;hpb=8772537cf6d022a54f738ccb84b65a7f21ccf1b2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/taint.c b/taint.c index e0869a9..1eab082 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; @@ -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; @@ -107,11 +109,12 @@ Perl_taint_env(pTHX) { int i = 0; char name[10 + TYPE_DIGITS(int)] = "DCL$PATH"; + STRLEN len = 8; /* strlen(name) */ while (1) { if (i) - (void)sprintf(name,"DCL$PATH;%d", i); - svp = hv_fetch(GvHVn(PL_envgv), name, strlen(name), FALSE); + len = my_sprintf(name,"DCL$PATH;%d", i); + svp = hv_fetch(GvHVn(PL_envgv), name, len, FALSE); if (!svp || *svp == &PL_sv_undef) break; if (SvTAINTED(*svp)) { @@ -127,7 +130,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; @@ -141,7 +144,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; @@ -160,7 +163,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);