From: Jarkko Hietaniemi Date: Fri, 27 Jun 2003 07:39:58 +0000 (+0000) Subject: Make doing_taint() always available (though not X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a06433151b0f1a3a12ccc4d2629feb511ea9fce6;p=p5sagit%2Fp5-mst-13.2.git Make doing_taint() always available (though not part of the public API). p4raw-id: //depot/perl@19862 --- diff --git a/embed.fnc b/embed.fnc index 954f358..7ffdef7 100644 --- a/embed.fnc +++ b/embed.fnc @@ -45,6 +45,7 @@ Anod |void |perl_free |PerlInterpreter* interp Anod |int |perl_run |PerlInterpreter* interp Anod |int |perl_parse |PerlInterpreter* interp|XSINIT_t xsinit \ |int argc|char** argv|char** env +np |int |doing_taint |int argc|char** argv|char** env #if defined(USE_ITHREADS) Anod |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags # if defined(PERL_IMPLICIT_SYS) diff --git a/embed.h b/embed.h index 14b5343..b89d173 100644 --- a/embed.h +++ b/embed.h @@ -29,6 +29,9 @@ #if defined(PERL_IMPLICIT_SYS) #endif +#ifdef PERL_CORE +#define doing_taint Perl_doing_taint +#endif #if defined(USE_ITHREADS) # if defined(PERL_IMPLICIT_SYS) # endif @@ -2531,6 +2534,9 @@ #if defined(PERL_IMPLICIT_SYS) #endif +#ifdef PERL_CORE +#define doing_taint Perl_doing_taint +#endif #if defined(USE_ITHREADS) # if defined(PERL_IMPLICIT_SYS) # endif diff --git a/perl.c b/perl.c index a4487fb..b6231a4 100644 --- a/perl.c +++ b/perl.c @@ -3327,8 +3327,9 @@ S_init_ids(pTHX) PL_tainting |= (PL_uid && (PL_euid != PL_uid || PL_egid != PL_gid)); } -#ifdef MYMALLOC -/* This is used very early in the lifetime of the program. */ +/* This is used very early in the lifetime of the program, + * before even the options are parsed, so PL_tainting has + * not been initialized properly.*/ int Perl_doing_taint(int argc, char *argv[], char *envp[]) { @@ -3351,7 +3352,6 @@ Perl_doing_taint(int argc, char *argv[], char *envp[]) return 1; return 0; } -#endif STATIC void S_forbid_setid(pTHX_ char *s) diff --git a/proto.h b/proto.h index fee6d0a..3c3776d 100644 --- a/proto.h +++ b/proto.h @@ -26,6 +26,7 @@ PERL_CALLCONV int perl_destruct(PerlInterpreter* interp); PERL_CALLCONV void perl_free(PerlInterpreter* interp); PERL_CALLCONV int perl_run(PerlInterpreter* interp); PERL_CALLCONV int perl_parse(PerlInterpreter* interp, XSINIT_t xsinit, int argc, char** argv, char** env); +PERL_CALLCONV int Perl_doing_taint(int argc, char** argv, char** env); #if defined(USE_ITHREADS) PERL_CALLCONV PerlInterpreter* perl_clone(PerlInterpreter* interp, UV flags); # if defined(PERL_IMPLICIT_SYS)