summaryrefslogtreecommitdiff
path: root/target/linux/ar71xx/image/Makefile
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2014-01-24 11:59:32 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2014-01-24 11:59:32 +0000
commited0c9da9857b4d066b470f7780545c3e2119c94c (patch)
tree967166d505166c27d147866bf49bf883b4695796 /target/linux/ar71xx/image/Makefile
parent2bb834c2c6ff1f8766a6a42591a2f8b01470eda6 (diff)
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> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39383 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx/image/Makefile')
-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)))