Merge "IPACM: fix modem assert issue after eMBMS goes down"
diff --git a/ipacm/src/IPACM_Wan.cpp b/ipacm/src/IPACM_Wan.cpp
index f998969..5a3c27d 100644
--- a/ipacm/src/IPACM_Wan.cpp
+++ b/ipacm/src/IPACM_Wan.cpp
@@ -3918,12 +3918,6 @@
IPACMDBG_H(" wan handle_down_evt \n");
- /* no iface address up, directly close iface*/
- if (ip_type == IPACM_IP_NULL)
- {
- goto fail;
- }
-
/* free ODU filter rule handlers */
if(IPACM_Iface::ipacmcfg->iface_table[ipa_if_num].if_cat == EMBMS_IF)
{
@@ -3941,6 +3935,12 @@
goto fail;
}
+ /* no iface address up, directly close iface*/
+ if (ip_type == IPACM_IP_NULL)
+ {
+ goto fail;
+ }
+
if(ip_type == IPA_IP_v4)
{
num_ipv4_modem_pdn--;
@@ -4275,6 +4275,7 @@
IPACMERR("Error Locate ipa_flt_rule_add memory...\n");
return IPACM_FAILURE;
}
+ memset(pFilteringTable_v4, 0, len);
pFilteringTable_v4->commit = 1;
pFilteringTable_v4->ep = rx_prop->rx[0].src_pipe;
pFilteringTable_v4->global = false;
@@ -4297,6 +4298,7 @@
free(pFilteringTable_v4);
return IPACM_FAILURE;
}
+ memset(pFilteringTable_v6, 0, len);
pFilteringTable_v6->commit = 1;
pFilteringTable_v6->ep = rx_prop->rx[0].src_pipe;
pFilteringTable_v6->global = false;
@@ -4317,6 +4319,7 @@
IPACMERR("Error Locate ipa_flt_rule_add memory...\n");
return IPACM_FAILURE;
}
+ memset(pFilteringTable_v4, 0, len);
pFilteringTable_v4->commit = 1;
pFilteringTable_v4->ep = rx_prop->rx[0].src_pipe;
pFilteringTable_v4->global = false;
@@ -4333,6 +4336,7 @@
free(pFilteringTable_v4);
return IPACM_FAILURE;
}
+ memset(pFilteringTable_v6, 0, len);
pFilteringTable_v6->commit = 1;
pFilteringTable_v6->ep = rx_prop->rx[0].src_pipe;
pFilteringTable_v6->global = false;