bcm4908: fix calculation of new cferam index
authorSungbo Eo <mans0n@gorani.run>
Sun, 1 Aug 2021 13:17:04 +0000 (22:17 +0900)
committerRafał Miłecki <rafal@milecki.pl>
Fri, 5 Nov 2021 13:13:46 +0000 (14:13 +0100)
The arithmetic expansion fails when idx becomes a two digit number.
Fix this by relying on expr command.

root@OpenWrt:/# echo $(((028 + 0) % 1000))
/bin/ash: arithmetic syntax error
root@OpenWrt:/# echo $(($(expr 028 + 0) % 1000))
28

Fixes: a6a0b252baa6 ("bcm4908: add sysupgrade support")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
(cherry picked from commit f4323538501d58298f4df73a034a51375a477cfc)

target/linux/bcm4908/base-files/lib/upgrade/platform.sh

index 8aca7119e480cb8d5b2b057e7db24e637a0cd43e..ee43e3a713eb835ae85d9ee1dfea69a0d953cdbe 100644 (file)
@@ -1,6 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
 
-RAMFS_COPY_BIN="bcm4908img"
+RAMFS_COPY_BIN="bcm4908img expr"
 
 PART_NAME=firmware
 
@@ -129,7 +129,7 @@ platform_calc_new_cferam() {
        umount $dir
        rm -fr $dir
 
-       idx=$(((idx + inc) % 1000))
+       idx=$(($(expr $idx + $inc) % 1000))
 
        echo $(printf "cferam.%03d" $idx)
 }