summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog7
-rwxr-xr-xscripts/install/install-image18
2 files changed, 25 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 86c47ba2..aa9bc0e0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+vyatta-cfg-system (0.16.9) unstable; urgency=low
+
+ * Validate MD5 checksums on ISO file before proceeding with
+ installation.
+
+ -- Bob Gilligan <gilligan@vyatta.com> Wed, 06 Jan 2010 14:32:18 -0800
+
vyatta-cfg-system (0.16.8) unstable; urgency=low
* Do loopback before other interfaces
diff --git a/scripts/install/install-image b/scripts/install/install-image
index dc834487..76418158 100755
--- a/scripts/install/install-image
+++ b/scripts/install/install-image
@@ -104,6 +104,24 @@ set_up_new_iso ()
fail_exit "\"$NEW_ISO\" is not a Vyatta ISO image file."
fi
+ # Verify checksums of all files in ISO image
+ if [ ! -f $CD_ROOT/md5sum.txt ]; then
+ fail_exit "MD5 checksum file is missing from ISO."
+ fi
+
+ echo -n "Checking MD5 checksums of files on the ISO image..."
+ resfile=`mktemp /tmp/install-image-md5check-XXXXXXXX`
+ (cd $CD_ROOT ; md5sum -c md5sum.txt > $resfile)
+ failures=`grep -v 'OK$' $resfile | wc -l`
+ rm -f $resfile
+ if [ $failures == 0 ]; then
+ echo "OK."
+ else
+ echo "Failed!"
+ echo "$failures checksum failures found!"
+ echo "ISO image is correupted and can not be used."
+ fi
+
# mount squash image
margs="-o loop,ro $squash_file $CD_SQUASH_ROOT"
if ! try_mount "$margs"; then