INN 2.4.5 crashing in Perl_doing_taint()
Julien ÉLIE
julien at trigofacile.com
Wed Jan 21 07:23:35 UTC 2009
Hi,
> (gdb) where
> #0 0x281bbd90 in Perl_doing_taint () from
> /usr/local/lib/perl5/5.8.9/mach/CORE/libperl.so
> #1 0x281bbdd4 in Perl_sys_init3 () from
> /usr/local/lib/perl5/5.8.9/mach/CORE/libperl.so
> #2 0x08090e74 in PERLsetup ()
> #3 0x0805c088 in main ()
Changes between 5.8.8 and 5.8.9:
http://search.cpan.org/~nwclark/perl-5.8.9/pod/perl589delta.pod
PERL_SYS_INIT, PERL_SYS_INIT3 and PERL_SYS_TERM macros have been changed into functions.
They now use Perl_sys_init3. It does that:
#define PERL_SYS_INIT3(argc, argv, env) Perl_sys_init3(argc, argv, env)
void
Perl_sys_init3(int* argc, char*** argv, char*** env)
{
PERL_UNUSED_ARG(argc); /* may not be used depending on _BODY macro */
PERL_UNUSED_ARG(argv);
PERL_UNUSED_ARG(env);
PERL_SYS_INIT3_BODY(argc, argv, env);
}
# define PERL_SYS_INIT3_BODY(argcp, argvp, envp) \
{ void *xreg[2]; \
MALLOC_CHECK_TAINT(*argcp, *argvp, *envp) \
_response(argcp, argvp); \
_wildcard(argcp, argvp); \
Perl_OS2_init3(*envp, xreg, 0); \
PERLIO_INIT
# define MALLOC_CHECK_TAINT(argc,argv,env) STMT_START { \
if (doing_taint(argc,argv,env)) { \
MallocCfg_ptr[MallocCfg_skip_cfg_env] = 1; \
}} STMT_END;
I assume tainting fails here.
Perl 5.10.0 also has these changes (except that "dVAR;" is called first in
Perl_sys_init3).
So maybe INN does not work on FreeBSD with Perl 5.10.0 too...
--
Julien ÉLIE
« L'éternité, c'est long, surtout vers la fin. » (Woody Allen)
More information about the inn-workers
mailing list