diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2014-01-24 11:59:32 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2014-01-24 11:59:32 +0000 |
commit | 4556632578f271ac283ca2caa7272c1eb6a04f68 (patch) | |
tree | ab93657cf32a50bbe73a0dea86ca5403c071d1fa /target/linux/ar71xx | |
parent | e89476e0a8122710a16fcf56c60cd872783966e4 (diff) | |
download | mtk-20170518-4556632578f271ac283ca2caa7272c1eb6a04f68.zip mtk-20170518-4556632578f271ac283ca2caa7272c1eb6a04f68.tar.gz mtk-20170518-4556632578f271ac283ca2caa7272c1eb6a04f68.tar.bz2 |
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
Diffstat (limited to 'target/linux/ar71xx')
-rw-r--r-- | target/linux/ar71xx/image/Makefile | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index 2a003a8..39e935d 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))) |