scan-build now fixes permissions of report files and directories, which may
be created as "temporary files" that are not world readable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49904 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/scan-build b/utils/scan-build
index 441f63f..ff44fee 100755
--- a/utils/scan-build
+++ b/utils/scan-build
@@ -156,6 +156,10 @@
   
   $AlreadyScanned{$digest} = 1;
   
+  # At this point the report file is not word readable.  Make it happen.
+  `chmod 644 $Dir/$FName`;
+  
+  # Scan the report file for tags.
   open(IN, "$Dir/$FName") or die "$Prog: Cannot open '$Dir/$FName'\n";
 
   my $BugDesc = "";
@@ -208,8 +212,10 @@
 sub Postprocess {
   
   my $Dir = shift;
+  my $BaseDir = shift;
   
   die "No directory specified." if (!defined($Dir));
+  die "No base directory specified." if (!defined($BaseDir));
   
   if (! -d $Dir) {
     return;
@@ -363,6 +369,10 @@
   close(OUT);
   
   CopyJS($Dir);
+  
+  # Make sure $Dir and $BaseDir is world readable/executable.
+  `chmod 755 $Dir`;
+  `chmod 755 $BaseDir`;
 }
 
 ##----------------------------------------------------------------------------##
@@ -516,6 +526,7 @@
   }
 }
 
+my $BaseDir = $HtmlDir;
 $HtmlDir = GetHTMLRunDir($HtmlDir);
 
 # Set the appropriate environment variables.
@@ -539,7 +550,7 @@
 
 # Postprocess the HTML directory.
 
-Postprocess($HtmlDir);
+Postprocess($HtmlDir, $BaseDir);
 
 if ($ViewResults and -r "$HtmlDir/index.html") {
   # Only works on Mac OS X (for now).