From 866fe3895da77b96999c77bbb7d23737fd93d34e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Tue, 21 Apr 2015 11:21:34 +0000 Subject: [PATCH] bcm53xx: sysupgrade: check if new kernel fits partition size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki SVN-Revision: 45547 --- target/linux/bcm53xx/base-files/lib/upgrade/platform.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh index e53c2513d2..88629549dc 100644 --- a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh @@ -152,12 +152,17 @@ platform_pre_upgrade() { echo "Unable to find \"linux\" partition size" exit 1 } - linux_length=$((0x$linux_length + 28)) + linux_length=$((0x$linux_length)) + local kernel_length=$(wc -c $dir/kernel | cut -d ' ' -f 1) + [ $kernel_length -gt $linux_length ] && { + echo "New kernel doesn't fit \"linux\" partition." + return + } rm -f /tmp/null.bin rm -f /tmp/kernel.trx touch /tmp/null.bin otrx create /tmp/kernel.trx \ - -f $dir/kernel -b $linux_length \ + -f $dir/kernel -b $(($linux_length + 28)) \ -f /tmp/null.bin # Prepare UBI image (drop unwanted extra blocks)