err = MsgSettingSetString(keyName, voiceMailOpt.mailNumber);
if (err != MSG_SUCCESS)
MSG_ERR("Error to set config data [%s]", keyName);
-
- memset(keyName, 0x00, sizeof(keyName));
- snprintf(keyName, sizeof(keyName), "%s/%d", VOICEMAIL_DEFAULT_NUMBER, simIndex);
- err = MsgSettingSetString(keyName, voiceMailOpt.mailNumber);
- if (err != MSG_SUCCESS)
- MSG_ERR("Error to set config data [%s]", keyName);
}
_END_OF_SET_VOICE_OPT:
return;
}
- if (len <= 0)
- THROW(MsgException::INVALID_RESULT, "read buffer size <= 0");
+ if (len <= 0 && len >= MSG_MAX_IPC_SIZE)
+ THROW(MsgException::INVALID_RESULT, "read buffer size <= 0 or over max ipc size");
char* pEventData = NULL;
unique_ptr<char*, void(*)(char**)> eventBuf(&pEventData, unique_ptr_deleter);
#define VOICEMAIL_NUMBER DEFAULT_VOICE_MAIL_OPT_PATH"/voice_mail_number"
#define VOICEMAIL_COUNT DEFAULT_VOICE_MAIL_OPT_PATH"/voice_mail_count"
#define VOICEMAIL_ALPHA_ID DEFAULT_VOICE_MAIL_OPT_PATH"/voice_mail_alphaid"
-#define VOICEMAIL_DEFAULT_NUMBER DEFAULT_VOICE_MAIL_OPT_PATH"/voice_mail_default_number"
#define VOICEMAIL_DEFAULT_ALPHA_ID ""
#define MSGSIZE_OPTION DEFAULT_MSGSIZE_OPT_PATH"/msg_size"
if (src_multipart) {
msg_struct_s *multipart_struct = (msg_struct_s *)msg_create_struct(MSG_STRUCT_MULTIPART_INFO);
- MMS_MULTIPART_DATA_S *dst_multipart = (MMS_MULTIPART_DATA_S*)multipart_struct->data;
-
- memcpy(dst_multipart, src_multipart, sizeof(MMS_MULTIPART_DATA_S));
-
- pDestMms->multipartlist = g_list_append(pDestMms->multipartlist, multipart_struct);
+ if (multipart_struct) {
+ MMS_MULTIPART_DATA_S *dst_multipart = (MMS_MULTIPART_DATA_S*)multipart_struct->data;
+ memcpy(dst_multipart, src_multipart, sizeof(MMS_MULTIPART_DATA_S));
+ pDestMms->multipartlist = g_list_append(pDestMms->multipartlist, multipart_struct);
+ }
}
}
}
} else {
int err = connection_create(&g_connection);
- if (CONNECTION_ERROR_NONE == err) {
+ if (CONNECTION_ERROR_NONE == err && g_connection) {
connection_cellular_state_e cellular_state;
connection_type_e net_state;
if (szTypeValue) {
/* checkMe: forwardLock needs boudary string */
- if (strcasecmp(szTypeString, "boundary") == 0) {
+ if (g_ascii_strcasecmp(szTypeString, "boundary") == 0) {
memset(pMsgType->param.szBoundary, 0, MSG_BOUNDARY_LEN + 1);
strncpy(pMsgType->param.szBoundary, szTypeValue, MSG_BOUNDARY_LEN);
#ifdef FEATURE_JAVA_MMS
if (err == MSG_SUCCESS) {
for (int i = 0; i < rowCnt; i++) {
MMS_MULTIPART_DATA_S *multipart = MsgMmsCreateMultipart();
+ if (multipart) {
+ dbHandle->getColumnToString(index++, sizeof(multipart->szContentType), multipart->szContentType);
- dbHandle->getColumnToString(index++, sizeof(multipart->szContentType), multipart->szContentType);
+ dbHandle->getColumnToString(index++, sizeof(multipart->szFileName), multipart->szFileName);
- dbHandle->getColumnToString(index++, sizeof(multipart->szFileName), multipart->szFileName);
+ dbHandle->getColumnToString(index++, sizeof(multipart->szFilePath), multipart->szFilePath);
- dbHandle->getColumnToString(index++, sizeof(multipart->szFilePath), multipart->szFilePath);
+ dbHandle->getColumnToString(index++, sizeof(multipart->szContentID), multipart->szContentID);
- dbHandle->getColumnToString(index++, sizeof(multipart->szContentID), multipart->szContentID);
+ dbHandle->getColumnToString(index++, sizeof(multipart->szContentLocation), multipart->szContentLocation);
- dbHandle->getColumnToString(index++, sizeof(multipart->szContentLocation), multipart->szContentLocation);
+ multipart->tcs_bc_level = dbHandle->getColumnToInt(index++);
- multipart->tcs_bc_level = dbHandle->getColumnToInt(index++);
+ multipart->malware_allow = dbHandle->getColumnToInt(index++);
- multipart->malware_allow = dbHandle->getColumnToInt(index++);
+ dbHandle->getColumnToString(index++, sizeof(multipart->szThumbFilePath), multipart->szThumbFilePath);
- dbHandle->getColumnToString(index++, sizeof(multipart->szThumbFilePath), multipart->szThumbFilePath);
+ multipart->type = MimeGetMimeIntFromMimeString(multipart->szContentType);
- multipart->type = MimeGetMimeIntFromMimeString(multipart->szContentType);
-
- *multipart_list = g_list_append(*multipart_list, multipart);
+ *multipart_list = g_list_append(*multipart_list, multipart);
+ }
}
}
break;
}
- MmsPluginUaManager::instance()->addMmsReqEntity(reqItem);
+ MmsPluginUaManager::instance()->addMmsReqEntity(&reqItem);
MmsPluginUaManager::instance()->start();
if (msisdn) {
unlock();
}
-void MmsPluginUaManager::addMmsReqEntity(mmsTranQEntity req)
+void MmsPluginUaManager::addMmsReqEntity(mmsTranQEntity *req)
{
+ if (req == NULL)
+ return;
+
+ mmsTranQEntity reqTmp = {0, };
+
+ memcpy(&reqTmp, req, sizeof(mmsTranQEntity));
+
lock();
- if (mmsTranQ.checkExist(req, compare_func) == true) {
- MSG_DEBUG("request Already Exist, req_id = %d", req.msgId);
+ if (mmsTranQ.checkExist(reqTmp, compare_func) == true) {
+ MSG_DEBUG("request Already Exist, req_id = %d", reqTmp.msgId);
unlock();
THROW(MsgException::REQ_EXIST_ERROR, "MMS request already exist");
}
- mmsTranQ.push_back(req);
+ mmsTranQ.push_back(reqTmp);
signal();
unlock();
static MmsPluginUaManager *instance();
virtual void start();
- void addMmsReqEntity(mmsTranQEntity req);
+ void addMmsReqEntity(mmsTranQEntity *req);
void getMmsPduData(mmsTranQEntity *qEntity);
bool processReceivedData(int msgId, char *pRcvdBody, int rcvdBodyLen, char *retrievedFilePath);
char keyName[MAX_VCONFKEY_NAME_LEN];
MSG_INFO("=================SIM CHANGED===================");
- /* reset default voicemail number and voicemail number */
-
+ /* reset voicemail number */
memset(keyName, 0x00, sizeof(keyName));
- snprintf(keyName, sizeof(keyName), "%s/%d", VOICEMAIL_DEFAULT_NUMBER, sim_idx);
+ snprintf(keyName, sizeof(keyName), "%s/%d", VOICEMAIL_NUMBER, sim_idx);
if (MsgSettingSetString(keyName, "") != MSG_SUCCESS)
- MSG_DEBUG("MsgSettingSetString is failed!!");
+ MSG_DEBUG("MsgSettingSetInt is failed!!");
memset(keyName, 0x00, sizeof(keyName));
snprintf(keyName, sizeof(keyName), "%s/%d", VOICEMAIL_COUNT, sim_idx);
MsgDeleteNoti(MSG_NOTI_TYPE_VOICE_2, sim_idx);
}
- /*==================== Default Voice mail Setting ====================*/
- memset(keyName, 0x00, sizeof(keyName));
- snprintf(keyName, sizeof(keyName), "%s/%d", VOICEMAIL_DEFAULT_NUMBER, sim_idx);
- char *num = NULL;
- if (MsgSettingGetString(keyName, &num) != MSG_SUCCESS) {
- MSG_INFO("MsgSettingGetString() is failed");
- }
-
- if (num && num[0] != '\0') {
- MSG_DEBUG("Voicemail Default Number [%s]", num);
-
- memset(keyName, 0x00, sizeof(keyName));
- snprintf(keyName, sizeof(keyName), "%s/%d", VOICEMAIL_NUMBER, sim_idx);
-
- if (MsgSettingSetString(keyName, num) != MSG_SUCCESS)
- MSG_DEBUG("MsgSettingSetInt is failed!!");
-
- free(num);
- num = NULL;
- } else {
- MSG_DEBUG("Voicemail Default Number is NULL");
-
- memset(keyName, 0x00, sizeof(keyName));
- snprintf(keyName, sizeof(keyName), "%s/%d", VOICEMAIL_NUMBER, sim_idx);
-
- char *voicemail = NULL;
- if (MsgSettingGetString(keyName, &voicemail) != MSG_SUCCESS) {
- MSG_INFO("MsgSettingGetString() is failed");
- }
-
- if (!voicemail || voicemail[0] == '\0') {
- if (MsgSettingSetString(keyName, "") != MSG_SUCCESS)
- MSG_DEBUG("MsgSettingSetInt is failed!!");
- }
- }
-
/*==================== Voice mail information update ====================*/
if (getVoiceMailInfo(handle) == true) {
MSG_DEBUG("######## getVoiceMailInfo Success !!! #######");
{
int ret = 0;
+ mx.lock();
+
bTapiResult = false;
ret = cv.timedwait(mx.pMutex(), MAX_TAPI_SIM_API_TIMEOUT);
+ mx.unlock();
+
if (ret == ETIMEDOUT) {
MSG_DEBUG("WARNING: TAPI callback TIME-OUT");
return false;
break;
}
- nleft -= nread;
+ if (nleft >= (unsigned int)nread)
+ nleft -= nread;
+ else
+ return -1;
+
memcpy(buf, t_buf, nread);
buf += nread;
}
else if (nread == 0)
break;
- nleft -= nread;
+ if (nleft >= (unsigned int)nread)
+ nleft -= nread;
+ else
+ return -1;
+
buf += nread;
}
return (len-nleft);
return *len;
/* read the data in subsequence */
- if (*len > 0) {
+ if (*len > 0 && *len < MSG_MAX_IPC_SIZE) {
unsigned int ulen = (unsigned int)*len;
*buf = new char[ulen+1];
bzero(*buf, ulen+1);
else
strncpy(order, "DESC", 5);
- int nameOrder = 0;
-
switch (pSortRule->sortType) {
case MSG_SORT_BY_DISPLAY_FROM :
- if (nameOrder == 0)
- snprintf(sql, sizeof(sql), "ORDER BY B.FIRST_NAME %s, B.LAST_NAME %s, B.ADDRESS_VAL, A.DISPLAY_TIME DESC;", order, order);
- else
- snprintf(sql, sizeof(sql), "ORDER BY B.LAST_NAME %s, B.FIRST_NAME %s, B.ADDRESS_VAL, A.DISPLAY_TIME DESC;", order, order);
+ snprintf(sql, sizeof(sql), "ORDER BY B.FIRST_NAME %s, B.LAST_NAME %s, B.ADDRESS_VAL, A.DISPLAY_TIME DESC;", order, order);
break;
case MSG_SORT_BY_DISPLAY_TO :
- if (nameOrder == 0)
- snprintf(sql, sizeof(sql), "ORDER BY B.FIRST_NAME %s, B.LAST_NAME %s, B.ADDRESS_VAL, A.DISPLAY_TIME DESC;", order, order);
- else
- snprintf(sql, sizeof(sql), "ORDER BY B.LAST_NAME %s, B.FIRST_NAME %s, B.ADDRESS_VAL, A.DISPLAY_TIME DESC;", order, order);
+ snprintf(sql, sizeof(sql), "ORDER BY B.FIRST_NAME %s, B.LAST_NAME %s, B.ADDRESS_VAL, A.DISPLAY_TIME DESC;", order, order);
break;
case MSG_SORT_BY_DISPLAY_TIME :
snprintf(sql, sizeof(sql), "ORDER BY DISPLAY_TIME %s;", order);
snprintf(sql, sizeof(sql), "ORDER BY A.STORAGE_ID %s, A.DISPLAY_TIME DESC;", order);
break;
case MSG_SORT_BY_THREAD_NAME :
- if (nameOrder == 0)
- snprintf(sql, sizeof(sql), "ORDER BY FIRST_NAME %s, LAST_NAME %s;", order, order);
- else
- snprintf(sql, sizeof(sql), "ORDER BY LAST_NAME %s, FIRST_NAME %s;", order, order);
+ snprintf(sql, sizeof(sql), "ORDER BY FIRST_NAME %s, LAST_NAME %s;", order, order);
break;
case MSG_SORT_BY_THREAD_DATE :
snprintf(sql, sizeof(sql), "ORDER BY MSG_TIME %s;", order);
MSGSVC_VMSG_APPEND_STR(buf, buf_size, len, MSGSVC_CRLF);
/* Date: */
+ MSGSVC_VMSG_APPEND_STR(buf, buf_size, len, content_name[VMSG_BODY_PROPERTY_DATE]);
+ MSGSVC_VMSG_APPEND_STR(buf, buf_size, len, content_name[VMSG_DATA_SEPARATOR]);
tzset();
localtime_r(&(pMsg->displayTime), &display_time);
char *msgDate = __msgsvc_vmsg_convert_tm_to_vdata_str(&display_time);
-
- MSGSVC_VMSG_APPEND_STR(buf, buf_size, len, content_name[VMSG_BODY_PROPERTY_DATE]);
- MSGSVC_VMSG_APPEND_STR(buf, buf_size, len, content_name[VMSG_DATA_SEPARATOR]);
if (msgDate !=NULL) {
MSGSVC_VMSG_APPEND_STR_FREE(buf, buf_size, len, msgDate);
MSGSVC_VMSG_APPEND_STR(buf, buf_size, len, MSGSVC_CRLF);
#endif
MSG_DEBUG("FILE SIZE IS %d, %s", fileSize, pFileData);
- msgText = (char *)calloc(1, fileSize);
- if(pFileData && msgText)
- memcpy(msgText, pFileData, fileSize);
-
+ if (fileSize > 0) {
+ msgText = (char *)calloc(1, fileSize);
+ if(pFileData && msgText)
+ memcpy(msgText, pFileData, fileSize);
+ }
pObject->numOfBiData = fileSize;
pObject->pszValue[0] = msgText;
pObject->valueCount = 1;
dLen = 0;
temp = __VCardGetTypeVal(pCardRaw, &status, &dLen, enc, pVCard->pCur);
- if (valueCount <= VDATA_VALUE_COUNT_MAX) {
+ if (valueCount < VDATA_VALUE_COUNT_MAX) {
pVCard->pCur->pszValue[valueCount] = temp;
valueCount++;
pVCard->pCur->valueCount = valueCount;
/* 12.03.2004 Process garbage character at the end of vcard/vcal */
if (_VIsSpace(string[i]) && (i < len-5)) {
- if (string[i-1] == LF || string[i-1] == CR) {
+ if (i >= 1 && (string[i-1] == LF || string[i-1] == CR)) {
if (j < 2)
j = 0;
else
string[i-1] = 0;
}
- if (string[i-2] == LF || string[i-2] == CR) {
+ if (i >= 2 && (string[i-2] == LF || string[i-2] == CR)) {
if (j < 1)
j = 0;
else
if (string[i+1] == CR && string[i+2] == LF) {
if (__VIsNewType(string) == false) {
- j -= 2;
+ if (j >= 2)
+ j -= 2;
+ else
+ j = 0;
i += 2;
}
} else if (string[i+1] == CR || string[i+1] == LF) {
if (__VIsNewType(string) == false) {
- j -= 1;
+ if (j >= 1)
+ j -= 1;
+ else
+ j = 0;
i += 1;
}
}
} else if (string[i] == ' ') {
- if (string[i-2] == CR && string[i-1] == LF) {
- if (__VIsNewType(string) == false)
- j -= 3;
- else
+ if (i >= 2 && string[i-2] == CR && string[i-1] == LF) {
+ if (__VIsNewType(string) == false) {
+ if (j >= 3)
+ j -= 3;
+ else
+ j = 0;
+ } else {
j -= 1;
- } else if (string[i-1] == CR || string[i-1] == LF) {
- j -= 2;
+ }
+ } else if (i >= 1 && (string[i-1] == CR || string[i-1] == LF)) {
+ if (j >= 2)
+ j -= 2;
+ else
+ j = 0;
}
} else if ((string[i] == CR || string[i] == LF) && __VIsNewType(string) == false) {
if (string[i+1] == LF) {
- j -= 1;
+ if (j >= 1)
+ j -= 1;
+ else
+ j = 0;
i += 1;
}
}
i += 2;
}
} else if (string[i] == WSP || string[i] == TAB) {
- if (string[i-2] == CR && string[i-1] == LF) {
+ if (i >= 2 && string[i-2] == CR && string[i-1] == LF) {
string[i] = 0;
string[i-1] = 0;
string[i-2] = 0;
j -= 3;
else
j = 0;
- } else if (string[i-1] == CR || string[i-1] == LF) {
+ } else if (i >= 1 && (string[i-1] == CR || string[i-1] == LF)) {
string[i] = 0;
string[i-1] = 0;
dLen = 0;
temp = __VMsgGetTypeVal(pMsgRaw, &status, &dLen, enc, pCurrent->pCur);
- if (valueCount <= VDATA_VALUE_COUNT_MAX) {
+ if (valueCount < VDATA_VALUE_COUNT_MAX) {
pCurrent->pCur->pszValue[valueCount] = temp;
valueCount++;
pCurrent->pCur->valueCount = valueCount;