]> granicus.if.org Git - clang/commitdiff
Use Digest::MD5 (a Perl module that should come bundled standard with Perl) to comput...
authorTed Kremenek <kremenek@apple.com>
Sat, 19 Apr 2008 18:05:48 +0000 (18:05 +0000)
committerTed Kremenek <kremenek@apple.com>
Sat, 19 Apr 2008 18:05:48 +0000 (18:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49954 91177308-0d34-0410-b5e6-96231b3b80d8

utils/scan-build

index 99262e4e1ea8bcce94e776fe39870e0b0fd88e6e..920ba47c0bb6d58a62f054542fbb021eeb50e0bc 100755 (executable)
@@ -16,6 +16,7 @@ use strict;
 use warnings;
 use File::Temp qw/ :mktemp /;
 use FindBin qw($RealBin);
+use Digest::MD5;
 
 my $Verbose = 0;       # Verbose output from this script.
 my $Prog = "scan-build";
@@ -122,10 +123,20 @@ sub SetHtmlEnv {
 sub ComputeDigest {
   my $FName = shift;
   die "Cannot read $FName" if (! -r $FName);  
-  my $Result = `sha1sum -b $FName`;
-  my @Output = split /\s+/,$Result;
-  die "Bad output from sha1sum" if (scalar(@Output) != 2);
-  return $Output[0];
+  
+  # Use Digest::MD5.  We don't have to be cryptographically secure.  We're
+  # just looking for duplicate files that come from a non-maliciious source.
+  # We use Digest::MD5 becomes it is a standard Perl module that should
+  # come bundled on most systems.
+  
+  open(FILE, $FName) or die "Cannot open $FName.";
+  binmode FILE;
+  my $Result = Digest::MD5->new->addfile(*FILE)->hexdigest;
+  close(FILE);
+  
+  # Return the digest.
+  
+  return $Result;
 }
 
 ##----------------------------------------------------------------------------##