From: Ted Kremenek Date: Sat, 19 Apr 2008 18:05:48 +0000 (+0000) Subject: Use Digest::MD5 (a Perl module that should come bundled standard with Perl) to comput... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a6e24811207ad2179b0dabe3d7e6ec551e6686df;p=clang Use Digest::MD5 (a Perl module that should come bundled standard with Perl) to compute file digests instead of using the external program "sha1sum" (which may not be present). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49954 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/scan-build b/utils/scan-build index 99262e4e1e..920ba47c0b 100755 --- a/utils/scan-build +++ b/utils/scan-build @@ -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; } ##----------------------------------------------------------------------------##