This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
bisect-runner.pl must use Fcntl::S_IMODE() on the raw output from stat.
authorNicholas Clark <nick@ccl4.org>
Sun, 2 Oct 2011 20:26:14 +0000 (22:26 +0200)
committerNicholas Clark <nick@ccl4.org>
Sun, 2 Oct 2011 20:28:15 +0000 (22:28 +0200)
Fixes a bug whereby it was failing to mask out the non-file-mode bits from
the return value from stat when testing whether the mode had changed.

Porting/bisect-runner.pl

index 730e50b..56e023e 100755 (executable)
@@ -331,6 +331,7 @@ if ($target eq 'config.sh') {
 # This is probably way too paranoid:
 if (@missing) {
     my @errors;
+    require Fcntl;
     foreach my $file (@missing) {
         my (undef, undef, $mode, undef, undef, undef, undef, $size)
             = stat $file;
@@ -338,7 +339,7 @@ if (@missing) {
             push @errors, "Added file $file has been deleted by Configure";
             next;
         }
-        if ($mode != 0) {
+        if (Fcntl::S_IMODE($mode) != 0) {
             push @errors,
                 sprintf 'Added file %s had mode changed by Configure to %03o',
                     $file, $mode;