perl-asp mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Galbavy" <peter.galb...@knowtion.net>
Subject "bug" in FileId() ?
Date Wed, 20 Nov 2002 14:50:09 GMT
Apologies for not being a subscriber to the list. My bad. I will subscribe
shortly, but I want to get this one out for comment.

In 2.49, the t/inode_names test failed on OpenBSD/i386 (3.2-current). After
quite a bit of head scratching, I >think< I know what the problem is;

The test of the stat elements [0] and [1] (in sub FileId() around line
540 -below) is redundent and will always fail where an OS may return '0' for
either value - in this case I think that 'dev' is '0' for the root
filesystem on OpenBSD:

    my @inode_stat = ();
    if($self->{inode_names}) {
        print STDERR "\ninode_names is SET\n";
        @inode_stat = stat($file);
        unless($inode_stat[0] && $inode_stat[1]) {
            @inode_stat = ();
        }
    }

perl's stat() returns and empty array if the stat fails, so the above code
can be reduced to:

   my @inode_stat = ();
    if($self->{inode_names}) {
        print STDERR "\ninode_names is SET\n";
        @inode_stat = stat($file);
    }

And it now works for me and passes all tests.

Obviously, this could just be me misunderstanding what this is meant to do,
and I am happy to be enlightened.

rgds,
--
Peter Galbavy
Knowtion Ltd.


---------------------------------------------------------------------
To unsubscribe, e-mail: asp-unsubscribe@perl.apache.org
For additional commands, e-mail: asp-help@perl.apache.org


Mime
View raw message