aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2014-01-24 11:59:32 +0000
committerGabor Juhos <juhosg@openwrt.org>2014-01-24 11:59:32 +0000
commit4556632578f271ac283ca2caa7272c1eb6a04f68 (patch)
treeab93657cf32a50bbe73a0dea86ca5403c071d1fa
parente89476e0a8122710a16fcf56c60cd872783966e4 (diff)
downloadupstream-4556632578f271ac283ca2caa7272c1eb6a04f68.tar.gz
upstream-4556632578f271ac283ca2caa7272c1eb6a04f68.tar.bz2
upstream-4556632578f271ac283ca2caa7272c1eb6a04f68.zip
ar71xx: image: fix size verification in the CatFiles macro
The macro checks the size of the rootfs image even if the second parameter of the macro contains the size of an eraseblock. It is wrong because the size of the kernel image will be adjusted to the next eraseblock and the resulting image might be too large. Fix the macro to check the size of the final image instead of the rootfs image. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 39383
-rw-r--r--target/linux/ar71xx/image/Makefile18
1 files changed, 13 insertions, 5 deletions
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 2a003a82b3..39e935d11b 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -141,13 +141,21 @@ define CatFiles
echo "Warning: $(5) is too big (> $(4) bytes)" >&2; \
rm -f $(5); \
fi; \
- else if [ $(2) -gt 262144 -a `stat -c%s "$(1)"` -gt $(2) ]; then \
- echo "Warning: $(1) is too big (> $(2) bytes)" >&2; \
- else if [ `stat -c%s $(3)` -gt $(4) ]; then \
- echo "Warning: $(3) is too big (> $(4) bytes)" >&2; \
+ else if [ $(2) -gt 262144 ]; then \
+ if [ `stat -c%s "$(1)"` -gt $(2) ]; then \
+ echo "Warning: $(1) is too big (> $(2) bytes)" >&2; \
+ else if [ `stat -c%s $(3)` -gt $(4) ]; then \
+ echo "Warning: $(3) is too big (> $(4) bytes)" >&2; \
+ else \
+ ( dd if=$(1) bs=$(2) conv=sync; dd if=$(3) ) > $(5); \
+ fi; fi; \
else \
( dd if=$(1) bs=$(2) conv=sync; dd if=$(3) ) > $(5); \
- fi; fi; fi
+ if [ `stat -c%s $(5)` -gt $(4) ]; then \
+ echo "Warning: $(5) is too big (> $(4) bytes)" >&2; \
+ rm -f $(5); \
+ fi; \
+ fi; fi
endef
Sysupgrade/KR=$(call CatFiles,$(2),$(3),$(KDIR)/root.$(1),$(4),$(call sysupname,$(1),$(5)))