mirror of
https://github.com/hak5/wifipineapple-openwrt.git
synced 2025-10-29 16:57:19 +00:00
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
This commit is contained in:
@@ -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)))
|
||||
|
||||
Reference in New Issue
Block a user