[][Kernel][hnat][FiX hnat coverity issue]

[Description]
Fix hnat coverity issue.
"Uninitialized scalar variable" in hnat_get_ppe_hash.
"Calling risky function" in hnat_xlat_cfg_write.
"Untrusted pointer read" in mtk_464xlat_pre_process

[Release-log]


Change-Id: I5f5158eba3b81ad40ed6b6ac86f1f38d973dee8a
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7440578
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c
index e0d5e10..a30ec1e 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c
@@ -692,6 +692,10 @@
 {
 	struct foe_entry *foe;
 
+	if (skb_hnat_entry(skb) >= hnat_priv->foe_etry_num ||
+	    skb_hnat_ppe(skb) >= CFG_PPE_NUM)
+		return;
+
 	foe = &hnat_priv->foe_table_cpu[skb_hnat_ppe(skb)][skb_hnat_entry(skb)];
 	if (foe->bfib1.state != BIND &&
 	    skb_hnat_reason(skb) == HIT_UNBIND_RATE_REACH)