base-files: fix offset conversion on caldata_patch_data()
authorShiji Yang <yangshiji66@qq.com>
Sat, 8 Feb 2025 07:36:24 +0000 (15:36 +0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Wed, 12 Feb 2025 23:26:23 +0000 (00:26 +0100)
`$(( ))` will convert uninitialized variable to "0". If we want to
use "-n" to check the string length, it's necessary to make sure the
converted variable is not empty.

Fixes: 652a6677d5fa ("base-files: Add new functions for ath11k caldata")
Fixes: https://github.com/openwrt/openwrt/issues/17818
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/17892
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/base-files/files/lib/functions/caldata.sh

index 09289728c0f5e3260f8d7d594df9e49ccfb11878..f0fc907aeff1a204c0fa62396aaee1ad785f2ce4 100644 (file)
@@ -125,8 +125,8 @@ caldata_valid() {
 caldata_patch_data() {
        local data=$1
        local data_count=$((${#1} / 2))
-       local data_offset=$(($2))
-       local chksum_offset=$(($3))
+       [ -n "$2" ] && local data_offset=$(($2))
+       [ -n "$3" ] && local chksum_offset=$(($3))
        local target=$4
        local fw_data
        local fw_chksum