[Feature][T106BUG-99][T106BUG-134]fix call lynq_setup_data_call will core dumped
Only Configure: No
Affected branch: master
Affected module: data
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No
Change-Id: Ifcaa444ae9e7adce20cf32bc7c9d3dde531ba7d3
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/data/data.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/data/data.cpp
index 673960a..fbeaefe 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/data/data.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/data/data.cpp
@@ -789,6 +789,7 @@
p.writeInt32(0);//status
p.writeInt32(-1);//suggestedRetryTime
p.writeInt32(lynq_apn_cid_table[i].cid);//cid
+ writeStringToParcel(p, lynq_apn_cid_table[i].ifaceName);//ifname
android::LYNQ_RIL_respSocket(p, (void *)pRI);
RLOGD("cid:%d,apn:%s,apntype:%s", lynq_apn_cid_table[i].cid, lynq_apn_cid_table[i].apn, lynq_apn_cid_table[i].apntype);
return -1;
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp
index 975db3a..49363ad 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -1116,12 +1116,12 @@
int cid = -1;
int active = -1;
int utoken = -1;
- char ifaceName[LYNQ_IFACE_NAME_MAX_LEN];
- char type[LYNQ_TYPE_MAX_LEN];
- char addresses[LYNQ_ADDRESSES_MAX_LEN];
- char dnses[LYNQ_DNSES_MAX_LEN];
- char gateways[LYNQ_GATEWAYS_MAX_LEN];
- char pcscf[LYNQ_PCSCF_MAX_LEN];
+ char ifaceName[LYNQ_IFACE_NAME_MAX_LEN] = {0};
+ char type[LYNQ_TYPE_MAX_LEN] = {0};
+ char addresses[LYNQ_ADDRESSES_MAX_LEN] = {0};
+ char dnses[LYNQ_DNSES_MAX_LEN] = {0};
+ char gateways[LYNQ_GATEWAYS_MAX_LEN] = {0};
+ char pcscf[LYNQ_PCSCF_MAX_LEN] = {0};
char *tmp_msg = NULL;
int len = 0;
@@ -1197,16 +1197,19 @@
return error;
}
}
-//version != 0 || slot < 0, the cid out of lynq_apn_table, need add a new item
- p.readInt32(&active);
-
- tmp_msg = strdupReadString(p);
- len = strlen(tmp_msg);
- if(len < LYNQ_TYPE_MAX_LEN-1)
+//the cid out of lynq_apn_table, need add a new item
+ if(version != 0)
{
- memcpy(type,tmp_msg,len+1);
+ p.readInt32(&active);
+
+ tmp_msg = strdupReadString(p);
+ len = strlen(tmp_msg);
+ if(len < LYNQ_TYPE_MAX_LEN-1)
+ {
+ memcpy(type,tmp_msg,len+1);
+ }
+ free(tmp_msg);
}
- free(tmp_msg);
tmp_msg = strdupReadString(p);
len = strlen(tmp_msg);
if(len < LYNQ_IFACE_NAME_MAX_LEN-1)
@@ -1232,6 +1235,7 @@
*handle = lynq_data_call_id;
lynq_apn_table[lynq_data_call_id].cid = cid;
memcpy(lynq_apn_table[lynq_data_call_id].ifaceName, ifaceName, strlen(ifaceName) + 1);
+ memcpy(lynq_apn_table[lynq_data_call_id].apn, apn, strlen(apn) + 1);
memcpy(lynq_apn_table[lynq_data_call_id].apnType, apnType, strlen(apnType) + 1);
lynq_apn_table[lynq_data_call_id].hasUsed = 1;
printf_apn_table();