From 26af69a9d3a78ff1ddbffc208496aabee0cc8f64 Mon Sep 17 00:00:00 2001
From: Jason Karns <jason@karns.name>
Date: Fri, 15 Jan 2016 16:47:54 -0500
Subject: [PATCH] Unknown checksum algorithms (based on length) are errors

---
 bin/ruby-build                                  | 5 ++++-
 test/fixtures/definitions/with-invalid-checksum | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/bin/ruby-build b/bin/ruby-build
index 9b11793a..4262cfa2 100755
--- a/bin/ruby-build
+++ b/bin/ruby-build
@@ -247,7 +247,7 @@ compute_md5() {
 }
 
 verify_checksum() {
-  local checksum_command="compute_sha2"
+  local checksum_command
 
   # If the specified filename doesn't exist, return success
   local filename="$1"
@@ -266,6 +266,9 @@ verify_checksum() {
     [ -n "$HAS_SHA2_SUPPORT" ] || return 0
     checksum_command="compute_sha2"
     ;;
+  *) # unknown checksum algorithm, return failure
+    return 1
+    ;;
   esac
 
   # If the computed checksum is empty, return failure
diff --git a/test/fixtures/definitions/with-invalid-checksum b/test/fixtures/definitions/with-invalid-checksum
index 1183810f..bb2572a9 100644
--- a/test/fixtures/definitions/with-invalid-checksum
+++ b/test/fixtures/definitions/with-invalid-checksum
@@ -1 +1 @@
-install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz#invalid" copy
+install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz#invalid_64_character_checksum_0000000000000000000000000000000000" copy