summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2003-06-27 07:39:58 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2003-06-27 07:39:58 +0000
commita06433151b0f1a3a12ccc4d2629feb511ea9fce6 (patch)
tree7a792ed00e298f50f76ed78fb7ae11da1599ee29
parentd0d2ba8fa784ab4c88f64ef679c2c1ff6203412a (diff)
downloadperl-a06433151b0f1a3a12ccc4d2629feb511ea9fce6.tar.gz
Make doing_taint() always available (though not
part of the public API). p4raw-id: //depot/perl@19862
-rw-r--r--embed.fnc1
-rw-r--r--embed.h6
-rw-r--r--perl.c6
-rw-r--r--proto.h1
4 files changed, 11 insertions, 3 deletions
diff --git a/embed.fnc b/embed.fnc
index 954f358b08..7ffdef7873 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 14b534345c..b89d17359a 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 a4487fb109..b6231a480b 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 fee6d0a9c0..3c3776dccd 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)