[Feature][API-1005]fix the content of 8bit message is empty, and BuffLen is error
Change-Id: Icc4755b6f76afa23086e94406af902c621267fd1
(cherry picked from commit 9915e7ad33946c43f0ecb973d577bc55fa6ace7e)
diff --git a/src/lynq/lib/liblynq-sms/lynq_sms.cpp b/src/lynq/lib/liblynq-sms/lynq_sms.cpp
index 46f2119..f457d7c 100755
--- a/src/lynq/lib/liblynq-sms/lynq_sms.cpp
+++ b/src/lynq/lib/liblynq-sms/lynq_sms.cpp
@@ -27,7 +27,6 @@
using ::android::Parcel;
-#define MAX_SMS_BUF 1024
int sms_storage_index = 0;
@@ -118,13 +117,9 @@
void ArrayToStr(unsigned char *Buff, unsigned int BuffLen, char *OutputStr)
{
int i = 0;
- char TempBuff[MAX_SMS_BUF] = {0};
- char strBuff[MAX_SMS_BUF] = {0};
- if(sizeof(Buff) < BuffLen)
- {
- LYERRLOG("BuffLen is error\n");
- return;
- }
+ char TempBuff[MSG_MAX_LEN * 2 +1] = {0};
+ char strBuff[MSG_MAX_LEN * 2 +1] = {0};
+
for(i = 0; i<BuffLen;i++)
{
sprintf(TempBuff,"%02x",(unsigned char)Buff[i]);
@@ -136,6 +131,12 @@
int lynq_send_sms(char telephony_num[TELEPHONE_NUM_LEN], int charset, char *msg, int msglen)
{
+ LYINFLOG("charset is %d, msglen %d\n", charset, msglen);
+ if(msglen > MSG_MAX_LEN || msglen < 0)
+ {
+ LYERRLOG("msglen out of the range");
+ return LYNQ_E_SMS_MSGLEN_OUT_OF_RANGE;
+ }
if(g_module_init_flag != MODULE_RUNNING)
{
LYERRLOG("%s module state %d error",__func__,g_module_init_flag);
@@ -146,6 +147,7 @@
{
char msg_e_b[msglen*2+1] = {0};// +1 for end of string.*2:A char array contains two elements of a string for each value
ArrayToStr(msg, msglen, msg_e_b);
+ LYINFLOG("tel, charset, msg_e_b: %s, %d, %s", telephony_num, charset, msg_e_b);
int ret=lynq_send_common_request(p,g_wait_time,RIL_REQUEST_SEND_SMS,3,"%s %d %s",telephony_num, charset, msg_e_b);
if(ret!=RESULT_OK)
{