Merge "Fixed crashes found during Bring up"
diff --git a/ipacm/src/IPACM_ConntrackListener.cpp b/ipacm/src/IPACM_ConntrackListener.cpp
index 66a6355..391c20a 100644
--- a/ipacm/src/IPACM_ConntrackListener.cpp
+++ b/ipacm/src/IPACM_ConntrackListener.cpp
@@ -125,6 +125,7 @@
if(0 != ret)
{
IPACMERR("unable to create TCP conntrack event listner thread\n");
+ PERROR("unable to create TCP conntrack");
return -1;
}
@@ -137,6 +138,7 @@
if(0 != ret)
{
IPACMERR("unable to create UDP conntrack event listner thread\n");
+ PERROR("unable to create UDP conntrack");
goto error;
}
@@ -149,6 +151,7 @@
if(0 != ret)
{
IPACMERR("unable to create udp conn timeout thread\n");
+ PERROR("unable to create udp conn timeout");
goto error;
}
diff --git a/ipacm/src/IPACM_EvtDispatcher.cpp b/ipacm/src/IPACM_EvtDispatcher.cpp
index 2d2909b..aa72dd6 100644
--- a/ipacm/src/IPACM_EvtDispatcher.cpp
+++ b/ipacm/src/IPACM_EvtDispatcher.cpp
@@ -127,6 +127,7 @@
if(data->evt_data != NULL)
{
+ IPACMDBG("free the event:%d data: %p\n", data->event, data->evt_data);
free(data->evt_data);
}
return;
diff --git a/ipacm/src/IPACM_Main.cpp b/ipacm/src/IPACM_Main.cpp
index 6369e10..446cd6a 100644
--- a/ipacm/src/IPACM_Main.cpp
+++ b/ipacm/src/IPACM_Main.cpp
@@ -173,7 +173,7 @@
struct ipa_wlan_msg *event = NULL;
ipacm_cmd_q_data evt_data;
- ipacm_event_data_mac *data;
+ ipacm_event_data_mac *data = NULL;
fd = open(IPA_DRIVER, O_RDWR);
if (fd == 0)
@@ -185,6 +185,8 @@
{
IPACMDBG("Waiting for nofications from IPA driver \n");
memset(buffer, 0, sizeof(buffer));
+ memset(&evt_data, 0, sizeof(evt_data));
+ data = NULL;
length = read(fd, buffer, IPA_DRIVER_WLAN_BUF_LEN);
if (length < 0)
diff --git a/ipacm/src/IPACM_Netlink.cpp b/ipacm/src/IPACM_Netlink.cpp
index d9a9098..de1bbfb 100644
--- a/ipacm/src/IPACM_Netlink.cpp
+++ b/ipacm/src/IPACM_Netlink.cpp
@@ -1518,10 +1518,10 @@
msg_ptr->nl_neigh_info.attr_info.local_addr.__ss_padding,
sizeof(data_all->ipv6_addr));
- data_addr->ipv6_addr[0] = ntohl(data_addr->ipv6_addr[0]);
- data_addr->ipv6_addr[1] = ntohl(data_addr->ipv6_addr[1]);
- data_addr->ipv6_addr[2] = ntohl(data_addr->ipv6_addr[2]);
- data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]);
+ data_all->ipv6_addr[0] = ntohl(data_all->ipv6_addr[0]);
+ data_all->ipv6_addr[1] = ntohl(data_all->ipv6_addr[1]);
+ data_all->ipv6_addr[2] = ntohl(data_all->ipv6_addr[2]);
+ data_all->ipv6_addr[3] = ntohl(data_all->ipv6_addr[3]);
data_all->iptype = IPA_IP_v6;
}
else
@@ -1602,13 +1602,14 @@
(uint16_t)(ntohs(((uint64_t *)&(msg_ptr->nl_neigh_info.attr_info.local_addr).__ss_padding)[1] >> 32)),
(uint16_t)(ntohs(((uint64_t *)&(msg_ptr->nl_neigh_info.attr_info.local_addr).__ss_padding)[1] >> 48)));
- memcpy(data_all->ipv6_addr, msg_ptr->nl_neigh_info.attr_info.local_addr.__ss_padding,
+ memcpy(data_all->ipv6_addr,
+ msg_ptr->nl_neigh_info.attr_info.local_addr.__ss_padding,
sizeof(data_all->ipv6_addr));
- data_addr->ipv6_addr[0] = ntohl(data_addr->ipv6_addr[0]);
- data_addr->ipv6_addr[1] = ntohl(data_addr->ipv6_addr[1]);
- data_addr->ipv6_addr[2] = ntohl(data_addr->ipv6_addr[2]);
- data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]);
+ data_all->ipv6_addr[0] = ntohl(data_all->ipv6_addr[0]);
+ data_all->ipv6_addr[1] = ntohl(data_all->ipv6_addr[1]);
+ data_all->ipv6_addr[2] = ntohl(data_all->ipv6_addr[2]);
+ data_all->ipv6_addr[3] = ntohl(data_all->ipv6_addr[3]);
data_all->iptype = IPA_IP_v6;
}
else
@@ -1620,7 +1621,8 @@
(unsigned char)(*(unsigned int *)&(msg_ptr->nl_neigh_info.attr_info.local_addr).__ss_padding >> 24));
- memcpy(&data_all->ipv4_addr, msg_ptr->nl_neigh_info.attr_info.local_addr.__ss_padding,
+ memcpy(&data_all->ipv4_addr,
+ msg_ptr->nl_neigh_info.attr_info.local_addr.__ss_padding,
sizeof(data_all->ipv4_addr));
data_all->iptype = IPA_IP_v4;
}