OVH Cloud OVH Cloud

fork et taint

3 réponses
Avatar
Asterbing
Bonjour. Ce script plante perl.exe lorsqu'il est en mode taint. Je n'ai
aucun message dans le error log.

#!/usr/bin/perl -T
print "Content-type: text/html\n\n";
my $pid = fork();
die "fork: $!\n" unless defined $pid;
if (!$pid){
print "fils ok<br>";
exit 0;}
print "perroquet<br>";
exit 0;

Il semble que le problème survienne dès la ligne "my $pid = fork();"
puisque lorsque j'arrête le script juste après via un "exit 0;", ça
plante de la même façon.

3 réponses

Avatar
Emmanuel Florac
Le Wed, 05 Apr 2006 18:16:49 +0200, Asterbing a écrit :


Il semble que le problème survienne dès la ligne "my $pid = fork();"
puisque lorsque j'arrête le script juste après via un "exit 0;", ça
plante de la même façon.


Ça marche chez moi. C'est plutôt un problème de configuration apache,
tu es bien en mode CGI (PAS mod_perl?)?

Par ailleurs, ajoute "use strict; use warnings;" ça rajoutera des
informations.

--
Writing about music is like dancing about architecture.
Frank Zappa

Avatar
Asterbing
In article ,
says...
tu es bien en mode CGI (PAS mod_perl?)?



J'ai testé sur une machine toute neuve sur laquelle j'ai installé
Apache2, puis juste ajouté un serveur virtuel avec la directive
ScriptAlias pour /cgi-bin/ vers le path ad hoc sur disque. Rien de plus.

Sinon, le crash est une exception qui se produit dans PERL58.DLL, je
n'en sais pas plus.

Par ailleurs, ajoute "use strict; use warnings;" ça rajoutera des
informations.



Oui, je les met systématiquement mais c'était pour réduire le script au
max. Sinon, en l'état des lieus, avec script ci-après, j'ai toujours
crash perl.exe et la sortie navigateur avant le fork se fait bien. Pas
d'erreur explicite.

#!/usr/bin/perl -T
use strict;
use warnings;
use CGI::Carp qw/fatalsToBrowser/;
print "Content-type: text/htmlnn";
print "avant fork ok<br>";
my $pid = fork();
die "fork: $!n" unless defined $pid;
if (!$pid){
print "fils ok<br>";
exit 0;}
print "perroquet<br>";
exit 0;

Avatar
Asterbing
In article ,
says...
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI::Carp qw/fatalsToBrowser/;
print "Content-type: text/htmlnn";
print "avant fork ok<br>";
my $pid = fork();
die "fork: $!n" unless defined $pid;
if (!$pid){
print "fils ok<br>";
exit 0;}
print "perroquet<br>";
exit 0;



Bonne nouvelle : il s'agissait certainement d'un bug ActiveState
ActivePerl 5.8.7.815 for Win32, parce qu'en mettant à jour vers
ActiveState ActivePerl 5.8.7.817, tout est ok ! Juste testé avec le
script ci-dessus (pas encore dans les scripts réels qui utilisent fork
en mode taint), mais pas de raison que ce soit différent :-)