[pacman-dev] [PATCH] makepkg: Fix integrity check when files are missing.

Loui Chang louipc.ist at gmail.com
Tue Apr 7 00:15:45 EDT 2009


The index in the for loop wasn't being incremented, so
if the first file wasn't found, the second file would be compared to the
first checksum, rather than the second.

Signed-off-by: Loui Chang <louipc.ist at gmail.com>
---
 scripts/makepkg.sh.in |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 349d0e0..9ff70f6 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -573,6 +573,7 @@ check_checksums() {
 			local idx=0
 			local file
 			for file in "${source[@]}"; do
+				local found=1
 				file="$(get_filename "$file")"
 				echo -n "    $file ... " >&2
 
@@ -580,19 +581,21 @@ check_checksums() {
 					if [ ! -f "$file" ] ; then
 						echo "$(gettext "NOT FOUND")" >&2
 						errors=1
-						continue
+						found=0
 					else
 						file="$SRCDEST/$file"
 					fi
 				fi
 
-				local expectedsum="$(echo ${integrity_sums[$idx]} | tr '[A-F]' '[a-f]')"
-				local realsum="$(openssl dgst -${integ} "$file" | awk '{print $NF}')"
-				if [ "$expectedsum" = "$realsum" ]; then
-					echo "$(gettext "Passed")" >&2
-				else
-					echo "$(gettext "FAILED")" >&2
-					errors=1
+				if [ $found -gt 0 ] ; then
+					local expectedsum="$(echo ${integrity_sums[$idx]} | tr '[A-F]' '[a-f]')"
+					local realsum="$(openssl dgst -${integ} "$file" | awk '{print $NF}')"
+					if [ "$expectedsum" = "$realsum" ]; then
+						echo "$(gettext "Passed")" >&2
+					else
+						echo "$(gettext "FAILED")" >&2
+						errors=1
+					fi
 				fi
 
 				idx=$((idx + 1))
-- 
1.6.2.2



More information about the pacman-dev mailing list