This test script:
#!/usr/bin/perl -w
use strict;
use Inline C => q{
int tainting() {
return PL_tainting;
}
};
print tainting();
... works fine when invoked normally, but gives an error when invoked
with tainting:
crypt% perl -T ~/t0
Insecure dependency in require while running with -T switch at blib/lib/Inline.pm
(autosplit into blib/lib/auto/Inline/find_temp_dir.al) line 1157.
BEGIN failed--compilation aborted at /home/hv/t0 line 7.
crypt%
This appears to be down to the C< elsif (require FindBin and ...) >
block in find_temp_dir() - I didn't probe further, but maybe something
put a tainted path into @INC. Comment out that elsif block and it
works fine. The problem occurs identically under perl 5.6.1 and 5.8.0.
Independently of that, I note that if I have run ~/t0 once under
perl-5.8.0, Inline fails to predict an incompatibility if I then
run it again under 5.6.1 - it tries to dynaload without rebuilding,
and gets a relocation error. ISTR this is a known problem.
Also, I (inadvertently) initially tried to run the test script in
a perl source directory. It fell over quite readily, because perl
hadn't been built there, but I'd suggest Inline should not spot
and take advantage of the source directory unless PERL_CORE is set -
in this case, the perl I was running with was built from different
sources, so I suspect it would have gone horribly wrong.
Hugo