[prev in list] [next in list] [prev in thread] [next in thread] 

List:       apache-modperl
Subject:    MP 2.0.1 slurp_filename broken?
From:       Bjorn Jacobsen <bjorn () sparkit ! no>
Date:       2005-08-26 9:14:34
Message-ID: 6.2.3.4.2.20050826101818.076bf520 () mail ! sparkit ! no
[Download RAW message or body]

Hello,

After upgrading to mod_perl 2.0.1 (from 1.99) I've got some problem 
with custom script handlers (inherited from ModPerl::Registry) no 
longer reports file access errors. It seems to boil down to the 
$r->slurp_filename() method, which does not throw if the file can't 
be opened/read for some reason, unlike before.

I've done a temproary workaround by patching the read_script in 
ModPer/RegistryCooker.pm, but it's not a good solution...

     $self->debug("reading $self->{FILENAME}") if DEBUG & D_NOISE;
     $self->{CODE} = eval { $self->{REQ}->slurp_filename(0) }; # untainted
+    if (!$@ && !defined($self->{CODE})) {
+        $self->log_error("slurp_filename returned nothing (probable 
err: $!)");
+        return Apache2::Const::NOT_FOUND; # Or whatever, for now. 
NOT_FOUND most likely.
+    }
     if ($@) {
         $self->log_error("$@");

Does anyone have a clue about this? I haven't checked the actual XS 
code for slurp_filename, but I see there is an overload of the method 
in RegistryLoader (which is never being used,
AFAIK, when inheriting from Registry or RegistryCooker).

Platform: httpd 2.0.54, perl 5.8.7, mod_perl 2.0.1, FreeBSD 
4.11-STABLE (reproducacble on my Linux/Debian test server as well).

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic