Beat: -T Taintcheck OK auf Windows NOT OK auf UNIX

Beitrag lesen

Zeig Code. Wenigstens die Stelle, die Perl in der Fehlermeldung bemängelt. Und die Fehlermeldung natürlich auch.

OK.
Ich habe jetzt einen Fehlerreport
Betrifft dies:

open( my $LOG2, '>', $Files{logfile} ) or die("$!");  

Es handelt sich um den einzigen Schreibzugriff.
Ich kann nun zurückverfolgen, warum $Files{logfile} als tainted gilt.

vorher

...  
logfile => $Path{__datadir} . 'log.ehf',  
...

vorher

$Path{__datadir} = $Path{homedir} . '/' . '__data/';  
$Path{homedir} = $Path{root} . $Path{htmldir} .'/'. $Path{ehfdatadir};  

vorher

$Path{scriptpath} =~ s#\\#/#g;  
( $Path{root}, $Path{cgi}, $Path{scriptname} ) =  
   ( $Path{scriptpath} =~ m!^ (.*?/) ($Path{cgidir}/\w+/) ([a-z]+\.pl)$!x );  

vorher

open( my $config, '<','config.ehf' ) or die ("Kann nicht config.ehf lesen $!");  
while(<$config>){  
...  
/^scriptpath\s*=\s*"([^"]+)"/ and $Path{scriptpath} = $1 and next;  
...  
}  
close $config;  

und zu vorderst

my %Path = ( #defaults  
     ...  
    scriptpath => $0,  
);  
  

Wie zu sehen wird zwar $0 verwendet, aber $0 wird auf jeden Fall über eine RE gewaschen.
Da ist kein Grund, dass diese Pfade tainted sein dürfen.

Und wieder meine Frage: Warum auf UNIX und nicht auf Windows?

mfg Beat