summaryrefslogtreecommitdiff
path: root/ipacm/src/IPACM_Wlan.cpp
diff options
context:
space:
mode:
authorShihuan Liu <chiaweic@codeaurora.org>2017-09-18 17:09:37 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-10-18 11:08:06 -0700
commitec108dd8cda2f8635cf6fa20c1c98bb341ea6ce6 (patch)
tree98b16d4d4e6ad712c5b71affec4a79d859c66b78 /ipacm/src/IPACM_Wlan.cpp
parentcebbb78d45d2a38d49c0701c997606a7dc6b088d (diff)
downloadipacfg-mgr-ec108dd8cda2f8635cf6fa20c1c98bb341ea6ce6.tar.gz
IPACM: fix ipacm crash issue
Fix ipacm crash issue in Ethernet bridging use case. Acked-by: Shihuan Liu <shihuanl@qti.qualcomm.com> Change-Id: I0ff8951b37cd30bce32ea17de9ee2fd9708b48af
Diffstat (limited to 'ipacm/src/IPACM_Wlan.cpp')
-rw-r--r--ipacm/src/IPACM_Wlan.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/ipacm/src/IPACM_Wlan.cpp b/ipacm/src/IPACM_Wlan.cpp
index ff8fcee..a36f0f9 100644
--- a/ipacm/src/IPACM_Wlan.cpp
+++ b/ipacm/src/IPACM_Wlan.cpp
@@ -202,6 +202,20 @@ void IPACM_Wlan::event_callback(ipa_cm_event_id event, void *param)
IPACMDBG_H("Received IPA_LAN_DELETE_SELF event.\n");
IPACMDBG_H("ipa_WLAN (%s):ipa_index (%d) instance close \n", IPACM_Iface::ipacmcfg->iface_table[ipa_if_num].iface_name, ipa_if_num);
+#ifdef FEATURE_ETH_BRIDGE_LE
+ if(rx_prop != NULL)
+ {
+ free(rx_prop);
+ }
+ if(tx_prop != NULL)
+ {
+ free(tx_prop);
+ }
+ if(iface_query != NULL)
+ {
+ free(iface_query);
+ }
+#endif
delete this;
}
break;
@@ -1926,7 +1940,9 @@ fail:
IPACMDBG_H("dev %s add producer dependency\n", dev_name);
IPACMDBG_H("depend Got pipe %d rm index : %d \n", rx_prop->rx[0].src_pipe, IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[rx_prop->rx[0].src_pipe]);
IPACM_Iface::ipacmcfg->DelRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[rx_prop->rx[0].src_pipe]);
+#ifndef FEATURE_ETH_BRIDGE_LE
free(rx_prop);
+#endif
}
for (i = 0; i < num_wifi_client; i++)
@@ -1940,6 +1956,7 @@ fail:
{
free(wlan_client);
}
+#ifndef FEATURE_ETH_BRIDGE_LE
if (tx_prop != NULL)
{
free(tx_prop);
@@ -1949,6 +1966,7 @@ fail:
{
free(iface_query);
}
+#endif
is_active = false;
post_del_self_evt();