summaryrefslogtreecommitdiff
path: root/ipacm/src/IPACM_Wlan.cpp
diff options
context:
space:
mode:
authorMohammed Javid <mjavid@codeaurora.org>2017-08-03 14:40:28 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2017-08-16 03:44:21 -0700
commite33f92bd70c814df5fa01ef357b61d78a5bb4e8c (patch)
tree2b5c92747d419e3b82b14791ac261e9df98e0456 /ipacm/src/IPACM_Wlan.cpp
parentdce23103b4e93cbeb3804ed47db5a177f4d3a689 (diff)
downloadipacfg-mgr-e33f92bd70c814df5fa01ef357b61d78a5bb4e8c.tar.gz
ipacm: Fix to prevent invalid deletion of filtering rules of IPV6
Add a check to delete filtering rules only if it is greater than number of rules to be deleted. Change-Id: I742440d624726a88077629382bba9ae0201effa7
Diffstat (limited to 'ipacm/src/IPACM_Wlan.cpp')
-rw-r--r--ipacm/src/IPACM_Wlan.cpp32
1 files changed, 18 insertions, 14 deletions
diff --git a/ipacm/src/IPACM_Wlan.cpp b/ipacm/src/IPACM_Wlan.cpp
index 9188980..4923199 100644
--- a/ipacm/src/IPACM_Wlan.cpp
+++ b/ipacm/src/IPACM_Wlan.cpp
@@ -1725,16 +1725,17 @@ int IPACM_Wlan::handle_down_evt()
goto fail;
}
IPACM_Iface::ipacmcfg->decreaseFltRuleCount(rx_prop->rx[0].src_pipe, IPA_IP_v4, NUM_IPV4_ICMP_FLT_RULE);
-
- if (m_filtering.DeleteFilteringHdls(dft_v4fl_rule_hdl, IPA_IP_v4, IPV4_DEFAULT_FILTERTING_RULES) == false)
+ if (dft_v4fl_rule_hdl[0] != 0)
{
- IPACMERR("Error Deleting Filtering Rule, aborting...\n");
- res = IPACM_FAILURE;
- goto fail;
+ if (m_filtering.DeleteFilteringHdls(dft_v4fl_rule_hdl, IPA_IP_v4, IPV4_DEFAULT_FILTERTING_RULES) == false)
+ {
+ IPACMERR("Error Deleting Filtering Rule, aborting...\n");
+ res = IPACM_FAILURE;
+ goto fail;
+ }
+ IPACM_Iface::ipacmcfg->decreaseFltRuleCount(rx_prop->rx[0].src_pipe, IPA_IP_v4, IPV4_DEFAULT_FILTERTING_RULES);
+ IPACMDBG_H("Deleted default v4 filter rules successfully.\n");
}
- IPACM_Iface::ipacmcfg->decreaseFltRuleCount(rx_prop->rx[0].src_pipe, IPA_IP_v4, IPV4_DEFAULT_FILTERTING_RULES);
- IPACMDBG_H("Deleted default v4 filter rules successfully.\n");
-
/* delete private-ipv4 filter rules */
#ifdef FEATURE_IPA_ANDROID
if(m_filtering.DeleteFilteringHdls(private_fl_rule_hdl, IPA_IP_v4, IPA_MAX_PRIVATE_SUBNET_ENTRIES) == false)
@@ -1770,14 +1771,17 @@ int IPACM_Wlan::handle_down_evt()
}
IPACM_Iface::ipacmcfg->decreaseFltRuleCount(rx_prop->rx[0].src_pipe, IPA_IP_v6, NUM_IPV6_ICMP_FLT_RULE);
- if (m_filtering.DeleteFilteringHdls(dft_v6fl_rule_hdl, IPA_IP_v6, IPV6_DEFAULT_FILTERTING_RULES) == false)
+ if (dft_v6fl_rule_hdl[0] != 0)
{
- IPACMERR("Error Adding RuleTable(1) to Filtering, aborting...\n");
- res = IPACM_FAILURE;
- goto fail;
+ if (m_filtering.DeleteFilteringHdls(dft_v6fl_rule_hdl, IPA_IP_v6, IPV6_DEFAULT_FILTERTING_RULES) == false)
+ {
+ IPACMERR("Error Adding RuleTable(1) to Filtering, aborting...\n");
+ res = IPACM_FAILURE;
+ goto fail;
+ }
+ IPACM_Iface::ipacmcfg->decreaseFltRuleCount(rx_prop->rx[0].src_pipe, IPA_IP_v6, IPV6_DEFAULT_FILTERTING_RULES);
+ IPACMDBG_H("Deleted default v6 filter rules successfully.\n");
}
- IPACM_Iface::ipacmcfg->decreaseFltRuleCount(rx_prop->rx[0].src_pipe, IPA_IP_v6, IPV6_DEFAULT_FILTERTING_RULES);
- IPACMDBG_H("Deleted default v6 filter rules successfully.\n");
}
IPACMDBG_H("finished delete filtering rules\n ");