aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
authorTrevor Wennblom2012-02-15 21:44:14 -0600
committerJack Nagel2012-02-15 22:12:06 -0600
commit555b16962fd51bebd55016b739767507325f1985 (patch)
treed15bb674dbfe8d9c3f9da17000527db16421c149 /Library/Homebrew/cmd
parent1d9ada295ab30dfd36005380097720be398569bc (diff)
downloadbrew-555b16962fd51bebd55016b739767507325f1985.tar.bz2
more stringent auditing of checksums
Closes Homebrew/homebrew#10213. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library/Homebrew/cmd')
-rwxr-xr-xLibrary/Homebrew/cmd/audit.rb19
1 files changed, 16 insertions, 3 deletions
diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb
index 843d19437..99dc3a979 100755
--- a/Library/Homebrew/cmd/audit.rb
+++ b/Library/Homebrew/cmd/audit.rb
@@ -75,18 +75,31 @@ def audit_formula_text name, text
end
# Empty checksums
- if text =~ /md5\s+(\'\'|\"\")/
+ if text =~ /md5\s+(''|"")/
problems << " * md5 is empty"
end
- if text =~ /sha1\s+(\'\'|\"\")/
+ if text =~ /sha1\s+(''|"")/
problems << " * sha1 is empty"
end
- if text =~ /sha256\s+(\'\'|\"\")/
+ if text =~ /sha256\s+(''|"")/
problems << " * sha256 is empty"
end
+ # Checksum sanity check
+ if text =~ /md5\s+['"](.+)['"]/ and $1 != '#{md5}' and $1 !~ /[a-f0-9]{32}/
+ problems << " * md5 contains invalid or incorrect number of characters"
+ end
+
+ if text =~ /sha1\s+['"](.+)['"]/ and $1 != '#{sha1}' and $1 !~ /[a-f0-9]{40}/
+ problems << " * sha1 contains invalid or incorrect number of characters"
+ end
+
+ if text =~ /sha256\s+['"](.+)['"]/ and $1 != '#{sha256}' and $1 !~ /[a-f0-9]{64}/
+ problems << " * sha256 contains invalid or incorrect number of characters"
+ end
+
# Commented-out depends_on
if text =~ /#\s*depends_on\s+(.+)\s*$/
problems << " * Commented-out dep #{$1}."