[Bugfix][T108-GSW][bug-view-1456] if no data init, gsw_get_data_call_pkt_stats will segment fault
Only Configure: No
Affected branch: unknown
Affected module: data
Is it affected on both ZXIC and ASR: only ASR
Self-test: yes
Doc Update: no
Change-Id: I5a6df9c495704746fbae597fffc3adae1a1bf988
diff --git a/mbtk/libgsw_lib/gsw_data_interface.c b/mbtk/libgsw_lib/gsw_data_interface.c
index abb8676..1c21210 100755
--- a/mbtk/libgsw_lib/gsw_data_interface.c
+++ b/mbtk/libgsw_lib/gsw_data_interface.c
@@ -742,7 +742,7 @@
int gsw_data_call_deinit(void)
{
int ret;
- if(data_init_flag == 0 && data_info_handle == NULL)
+ if(data_init_flag == 0 || data_info_handle == NULL)
{
return GSW_HAL_NORMAL_FAIL;
}
@@ -767,7 +767,7 @@
*/
int gsw_data_call_set_apn(Link_Info_s *LinkInf)
{
- if(data_init_flag == 0 && data_info_handle == NULL)
+ if(data_init_flag == 0 || data_info_handle == NULL)
{
return GSW_HAL_NORMAL_FAIL;
}
@@ -788,21 +788,21 @@
if(strcmp(LinkInf->normalProtocol,"IP") == 0)
{
ip_type = MBTK_IP_TYPE_IP;
- LOGE("pdp_type(protocol) is IP\n");
+ LOGE("pdp_type(protocol) is IP");
}
else if(strcmp(LinkInf->normalProtocol,"IPV6") == 0)
{
ip_type = MBTK_IP_TYPE_IPV6;
- LOGE("pdp_type(protocol) is IPV6\n");
+ LOGE("pdp_type(protocol) is IPV6");
}
else if(strcmp(LinkInf->normalProtocol,"IPV4V6") == 0)
{
ip_type = MBTK_IP_TYPE_IPV4V6;
- LOGE("pdp_type(protocol) is IPV4V6\n");
+ LOGE("pdp_type(protocol) is IPV4V6");
}
else
{
- LOGE("pdp_type(protocol) error\n");
+ LOGE("pdp_type(protocol) error");
return GSW_HAL_NORMAL_FAIL;
}
@@ -871,7 +871,7 @@
int ret = -1;
int cid = -1;
uint8_t cid_temp = 0;
- if(data_init_flag == 0 && data_info_handle == NULL)
+ if(data_init_flag == 0 || data_info_handle == NULL)
{
return GSW_HAL_NORMAL_FAIL;
}
@@ -931,7 +931,7 @@
int ret = -1;
int cid = -1;
uint8_t cid_temp = 0;
- if(data_init_flag == 0 && data_info_handle == NULL)
+ if(data_init_flag == 0 || data_info_handle == NULL)
{
return GSW_HAL_NORMAL_FAIL;
}
@@ -974,6 +974,11 @@
*/
int gsw_get_data_call_pkt_stats(int linkid, gsw_data_pkt_stats *data_pkt)
{
+
+ if(data_init_flag == 0 || data_info_handle == NULL)
+ {
+ return GSW_HAL_NORMAL_FAIL;
+ }
char temp_linkid[12] = {0};
char interface_name[32] = {0};
sprintf(temp_linkid,"%d",linkid+1);