Merge "IPACM: fix crash issue in LE"
diff --git a/ipacm/inc/IPACM_Log.h b/ipacm/inc/IPACM_Log.h
index d468f96..8a05761 100644
--- a/ipacm/inc/IPACM_Log.h
+++ b/ipacm/inc/IPACM_Log.h
@@ -61,18 +61,18 @@
 
 static char buffer_send[MAX_BUF_LEN];
 
-#define PERROR(fmt)   memset(buffer_send, 0, sizeof(MAX_BUF_LEN));\
+#define PERROR(fmt)   memset(buffer_send, 0, MAX_BUF_LEN);\
 					  snprintf(buffer_send,MAX_BUF_LEN,"%s:%d %s()", __FILE__, __LINE__, __FUNCTION__);\
 					  ipacm_log_send (buffer_send); \
                       perror(fmt);
 
-#define IPACMERR(fmt, ...)	memset(buffer_send, 0, sizeof(MAX_BUF_LEN));\
+#define IPACMERR(fmt, ...)	memset(buffer_send, 0, MAX_BUF_LEN);\
 							snprintf(buffer_send,MAX_BUF_LEN,"ERR: %s:%d %s() " fmt, __FILE__,  __LINE__, __FUNCTION__, ##__VA_ARGS__);\
 							ipacm_log_send (buffer_send);
-#define IPACMDBG(fmt, ...)	memset(buffer_send, 0, sizeof(MAX_BUF_LEN));\
+#define IPACMDBG(fmt, ...)	memset(buffer_send, 0, MAX_BUF_LEN);\
 							snprintf(buffer_send,MAX_BUF_LEN,"%s:%d %s() " fmt, __FILE__,  __LINE__, __FUNCTION__, ##__VA_ARGS__);\
 							ipacm_log_send (buffer_send);
-#define IPACMLOG(fmt, ...)      memset(buffer_send, 0, sizeof(MAX_BUF_LEN));\
+#define IPACMLOG(fmt, ...)      memset(buffer_send, 0, MAX_BUF_LEN);\
                                                         snprintf(buffer_send,MAX_BUF_LEN, fmt, ##__VA_ARGS__);\
                                                         ipacm_log_send (buffer_send);
 
diff --git a/ipacm/src/IPACM_Lan.cpp b/ipacm/src/IPACM_Lan.cpp
index e0fe7b0..0dfbac9 100644
--- a/ipacm/src/IPACM_Lan.cpp
+++ b/ipacm/src/IPACM_Lan.cpp
@@ -1207,17 +1207,20 @@
 
 			}
 		}
+		/* initialize wifi client*/
+		get_client_memptr(eth_client, num_eth_client)->route_rule_set_v4 = false;
+		get_client_memptr(eth_client, num_eth_client)->route_rule_set_v6 = 0;
+		get_client_memptr(eth_client, num_eth_client)->ipv4_set = false;
+		get_client_memptr(eth_client, num_eth_client)->ipv6_set = 0;
+		num_eth_client++;
+		header_name_count++; //keep increasing header_name_count
+		res = IPACM_SUCCESS;
+		IPACMDBG("eth client number: %d\n", num_eth_client);
 	}
-	/* initialize wifi client*/
-	get_client_memptr(eth_client, num_eth_client)->route_rule_set_v4 = false;
-    get_client_memptr(eth_client, num_eth_client)->route_rule_set_v6 = 0;
-	get_client_memptr(eth_client, num_eth_client)->ipv4_set = false;
-    get_client_memptr(eth_client, num_eth_client)->ipv6_set = 0;
-	num_eth_client++;
-	header_name_count++; //keep increasing header_name_count
-	res = IPACM_SUCCESS;
-	IPACMDBG("eth client number: %d\n", num_eth_client);
-
+	else
+	{
+		return res;
+	}
 fail:
 	free(pHeaderDescriptor);
 
diff --git a/ipacm/src/IPACM_Wlan.cpp b/ipacm/src/IPACM_Wlan.cpp
index 42099f0..e111bfd 100644
--- a/ipacm/src/IPACM_Wlan.cpp
+++ b/ipacm/src/IPACM_Wlan.cpp
@@ -895,6 +895,10 @@
 			private_fl_rule_hdl[i] = pFilteringTable->rules[i].rule_hdl;
 		}
 	}
+	else
+	{
+		return IPACM_SUCCESS;
+	}
 fail:
 	free(pFilteringTable);
 	return res;
@@ -1312,23 +1316,26 @@
 				break;
 			}
 		}
-	}
 
-	/* initialize wifi client*/
-	get_client_memptr(wlan_client, num_wifi_client)->route_rule_set_v4 = false;
-    get_client_memptr(wlan_client, num_wifi_client)->route_rule_set_v6 = 0;
-	get_client_memptr(wlan_client, num_wifi_client)->ipv4_set = false;
-    get_client_memptr(wlan_client, num_wifi_client)->ipv6_set = 0;
-    get_client_memptr(wlan_client, num_wifi_client)->power_save_set=false;
-	num_wifi_client++;
-	header_name_count++; //keep increasing header_name_count
-	IPACM_Wlan::total_num_wifi_clients++;
-	res = IPACM_SUCCESS;
-	IPACMDBG("Wifi client number: %d\n", num_wifi_client);
+		/* initialize wifi client*/
+		get_client_memptr(wlan_client, num_wifi_client)->route_rule_set_v4 = false;
+		get_client_memptr(wlan_client, num_wifi_client)->route_rule_set_v6 = 0;
+		get_client_memptr(wlan_client, num_wifi_client)->ipv4_set = false;
+		get_client_memptr(wlan_client, num_wifi_client)->ipv6_set = 0;
+		get_client_memptr(wlan_client, num_wifi_client)->power_save_set=false;
+		num_wifi_client++;
+		header_name_count++; //keep increasing header_name_count
+		IPACM_Wlan::total_num_wifi_clients++;
+		res = IPACM_SUCCESS;
+		IPACMDBG("Wifi client number: %d\n", num_wifi_client);
+	}
+	else
+	{
+		return res;
+	}
 
 fail:
 	free(pHeaderDescriptor);
-
 	return res;
 }