[BugFix][L805A-31]call lynq_query_cellinfo_dual with parameter realNum = -1 will cause coredump
Only Configure:No
Affected branch:DSDS
Affected module:NETWORK
Is it affected on both ZXIC and MTK: MTK
Self-test: Yes
Doc Update:Need
Change-Id: I13f34ea183b4700d7f9a8a22283ab6bb78d3794e
diff --git a/common_src/lib/liblynq-network/lynq_network.cpp b/common_src/lib/liblynq-network/lynq_network.cpp
index b396622..089a72e 100755
--- a/common_src/lib/liblynq-network/lynq_network.cpp
+++ b/common_src/lib/liblynq-network/lynq_network.cpp
@@ -1209,6 +1209,7 @@
Parcel* parcel_for_sim0=NULL;
Parcel* parcel_for_sim1=NULL;
+ int temp_realNum = 0;
int ret=lynq_send_common_request_dual(parcel_for_sim0,g_wait_time,RIL_REQUEST_GET_CELL_INFO_LIST,0,'1','0',"");
@@ -1222,7 +1223,7 @@
return ret;
}
- ret = lynq_store_cell_info_dual(parcel_for_sim0,cellinfo,realNum,0);
+ ret = lynq_store_cell_info_dual(parcel_for_sim0,cellinfo,&temp_realNum,0);
if(ret!=RESULT_OK)
{
LYERRLOG("lynq_store_cell_info_dual failure, ret is %d",__func__,ret);
@@ -1233,20 +1234,22 @@
if(ret!=RESULT_OK)
{
LYERRLOG("%s call lynq_send_common_request failure, ret is %d",__func__,ret);
- if(parcel_for_sim0!=NULL)
+ if(parcel_for_sim1!=NULL)
{
- delete parcel_for_sim0;
+ delete parcel_for_sim1;
}
return ret;
}
- ret = lynq_store_cell_info_dual(parcel_for_sim1,cellinfo,realNum,1);
+ ret = lynq_store_cell_info_dual(parcel_for_sim1,cellinfo,&temp_realNum,1);
if(ret!=RESULT_OK)
{
LYERRLOG("lynq_store_cell_info_dual failure, ret is %d",__func__,ret);
return ret;
}
+ *realNum = temp_realNum;
+
return RESULT_OK;