[][openwrt][mt7988][tops][fix coverity issue]
[Description]
Fix TOPS coverity issue
[Release-log]
N/A
Change-Id: Ic4a5aaf30e66e7985ef3d13e7448a626ee8ba124
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7922988
diff --git a/package-21.02/kernel/tops/src/firmware.c b/package-21.02/kernel/tops/src/firmware.c
index 20a7db1..646212f 100644
--- a/package-21.02/kernel/tops/src/firmware.c
+++ b/package-21.02/kernel/tops/src/firmware.c
@@ -377,7 +377,7 @@
u32 boot_addr = TOPS_DEFAULT_BOOT_ADDR;
u32 i;
- for (i = TOPS_PART_TYPE_IRAM0; i < __TOPS_PART_TYPE_MAX; i++) {
+ for (i = TOPS_PART_TYPE_IRAM0; i < TOPS_PART_TYPE_METADATA; i++) {
hdr = part->hdr[i];
if (le16_to_cpu(hdr->flags) & FW_PART_BOOT_OVERRIDE) {
@@ -565,19 +565,21 @@
u32 meta_len;
u32 ofs = 0;
u32 nattr;
- u32 i;
+ int i;
if (!tfw || !part)
return -EINVAL;
- if (FW_ROLE(tfw) > __TOPS_ROLE_TYPE_MAX)
+ if (FW_ROLE(tfw) >= __TOPS_ROLE_TYPE_MAX)
return -EINVAL;
phdr = part->hdr[TOPS_PART_TYPE_METADATA];
payload = part->payload[TOPS_PART_TYPE_METADATA];
- meta_len = le32_to_cpu(phdr->size);
+ if (!phdr || !payload)
+ return 0;
- if (!phdr || !payload || !meta_len)
+ meta_len = le32_to_cpu(phdr->size);
+ if (!meta_len)
return 0;
fw_info = &npu.fw_info[FW_ROLE(tfw)];