Fixed the build error using gcc 13
[platform/core/messaging/msg-service.git] / mapi / msg_message.cpp
index c4c8978..4b7ddbd 100755 (executable)
@@ -61,7 +61,7 @@ void msg_message_create_struct(msg_struct_s *msg_struct)
        msg->msgId = 0;
        msg->threadId = 0;
        msg->folderId = MSG_DRAFT_ID;
-       msg->mainType= MSG_SMS_TYPE;
+       msg->mainType = MSG_SMS_TYPE;
        msg->subType = MSG_NORMAL_SMS;
        msg->classType = MSG_CLASS_NONE;
        msg->storageId = MSG_STORAGE_PHONE;
@@ -85,16 +85,19 @@ void msg_message_create_struct(msg_struct_s *msg_struct)
        msg_struct_list_s *addr_list = (msg_struct_list_s *)new msg_struct_list_s;
 
        addr_list->nCount = 0;
-       addr_list->msg_struct_info = (msg_struct_t *)calloc(MAX_TO_ADDRESS_CNT, sizeof(MSG_ADDRESS_INFO_S *));
-
-       msg_struct_s *pTmp = NULL;
-
-       for (int i = 0; i < MAX_TO_ADDRESS_CNT; i++) {
-               addr_list->msg_struct_info[i] = (msg_struct_t)new msg_struct_s;
-               pTmp = (msg_struct_s *)addr_list->msg_struct_info[i];
-               pTmp->type = MSG_STRUCT_ADDRESS_INFO;
-               pTmp->data = new MSG_ADDRESS_INFO_S;
-               memset(pTmp->data, 0x00, sizeof(MSG_ADDRESS_INFO_S));
+       addr_list->msg_struct_info = (msg_struct_t *)calloc(MAX_TO_ADDRESS_CNT, sizeof(msg_struct_s *));
+
+       if (addr_list->msg_struct_info != NULL) {
+               msg_struct_s *pTmp = NULL;
+
+               for (int i = 0; i < MAX_TO_ADDRESS_CNT; i++) {
+                       addr_list->msg_struct_info[i] = (msg_struct_t)new msg_struct_s;
+                       pTmp = (msg_struct_s *)addr_list->msg_struct_info[i];
+                       memset(pTmp, 0x00, sizeof(msg_struct_s));
+                       pTmp->type = MSG_STRUCT_ADDRESS_INFO;
+                       pTmp->data = new MSG_ADDRESS_INFO_S;
+                       memset(pTmp->data, 0x00, sizeof(MSG_ADDRESS_INFO_S));
+               }
        }
 
        msg->addr_list = addr_list;
@@ -119,10 +122,9 @@ int msg_message_release(msg_struct_s **msg_struct)
                msg->mmsDataSize = 0;
        }
 
-       // Memory Free
-       if (msg->addr_list != NULL)
-       {
-               for(int i=0; i<MAX_TO_ADDRESS_CNT; i++) {
+       /* Memory Free */
+       if (msg->addr_list != NULL) {
+               for (int i = 0; i < MAX_TO_ADDRESS_CNT; i++) {
                        msg_struct_s * addrInfo = (msg_struct_s *)msg->addr_list->msg_struct_info[i];
                        delete (MSG_ADDRESS_INFO_S *)addrInfo->data;
                        addrInfo->data = NULL;
@@ -136,7 +138,7 @@ int msg_message_release(msg_struct_s **msg_struct)
                msg->addr_list = NULL;
        }
 
-       // Free GList *addressList
+       /* Free GList *addressList */
        if (msg->addressList) {
                g_list_free_full(msg->addressList, __msg_message_release_address_struct);
                msg->addressList = NULL;
@@ -160,120 +162,152 @@ int msg_message_get_int_value(void *data, int field, int *value)
 
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)data;
 
-       switch (field)
-       {
-       case MSG_MESSAGE_ID_INT :
+       switch (field) {
+       case MSG_MESSAGE_ID_INT:
                *value = msg_data->msgId;
                break;
-       case MSG_MESSAGE_THREAD_ID_INT :
+       case MSG_MESSAGE_THREAD_ID_INT:
                *value = msg_data->threadId;
                break;
-       case MSG_MESSAGE_FOLDER_ID_INT :
+       case MSG_MESSAGE_FOLDER_ID_INT:
                *value = msg_data->folderId;
                break;
-       case MSG_MESSAGE_TYPE_INT :
-       {
-        if (msg_data->mainType == MSG_SMS_TYPE)
-        {
+       case MSG_MESSAGE_TYPE_INT: {
+               if (msg_data->mainType == MSG_SMS_TYPE) {
                        switch (msg_data->subType) {
-                               case MSG_CB_SMS :
-                                       *value = MSG_TYPE_SMS_CB;
-                                       break;
-                               case MSG_JAVACB_SMS :
-                                       *value = MSG_TYPE_SMS_JAVACB;
-                                       break;
-                               case MSG_WAP_SI_SMS :
-                               case MSG_WAP_SL_SMS :
-                                       *value = MSG_TYPE_SMS_WAPPUSH;
-                                       break;
-                               case MSG_MWI_VOICE_SMS :
-                               case MSG_MWI_FAX_SMS :
-                               case MSG_MWI_EMAIL_SMS :
-                               case MSG_MWI_OTHER_SMS :
-                                       *value = MSG_TYPE_SMS_MWI;
-                                       break;
-                               case MSG_SYNCML_CP :
-                                       *value = MSG_TYPE_SMS_SYNCML;
-                                       break;
-                               case MSG_REJECT_SMS :
-                                       *value = MSG_TYPE_SMS_REJECT;
-                                       break;
-                               case MSG_ETWS_SMS :
-                                       *value = MSG_TYPE_SMS_ETWS_PRIMARY;
-                                       break;
-                               case MSG_CMAS_PRESIDENTIAL :
-                                       *value = MSG_TYPE_SMS_CMAS_PRESIDENTIAL;
-                                       break;
-                               case MSG_CMAS_EXTREME :
-                                       *value = MSG_TYPE_SMS_CMAS_EXTREME;
-                                       break;
-                               case MSG_CMAS_SEVERE :
-                                       *value = MSG_TYPE_SMS_CMAS_SEVERE;
-                                       break;
-                               case MSG_CMAS_AMBER :
-                                       *value = MSG_TYPE_SMS_CMAS_AMBER;
-                                       break;
-                               case MSG_CMAS_TEST :
-                                       *value = MSG_TYPE_SMS_CMAS_TEST;
-                                       break;
-                               case MSG_CMAS_OPERATOR_DEFINED :
-                                       *value = MSG_TYPE_SMS_CMAS_OPERATOR_DEFINED;
-                                       break;
-                               default :
-                                       *value = MSG_TYPE_SMS;
+                       case MSG_CB_SMS:
+                               *value = MSG_TYPE_SMS_CB;
+                               break;
+                       case MSG_JAVACB_SMS:
+                               *value = MSG_TYPE_SMS_JAVACB;
+                               break;
+                       case MSG_WAP_SI_SMS:
+                       case MSG_WAP_SL_SMS:
+                               *value = MSG_TYPE_SMS_WAPPUSH;
+                               break;
+                       case MSG_MWI_VOICE_SMS:
+                       case MSG_MWI_FAX_SMS:
+                       case MSG_MWI_EMAIL_SMS:
+                       case MSG_MWI_OTHER_SMS:
+                               *value = MSG_TYPE_SMS_MWI;
+                               break;
+                       case MSG_SYNCML_CP:
+                               *value = MSG_TYPE_SMS_SYNCML;
+                               break;
+                       case MSG_REJECT_SMS:
+                               *value = MSG_TYPE_SMS_REJECT;
+                               break;
+                       case MSG_ETWS_SMS:
+                               *value = MSG_TYPE_SMS_ETWS_PRIMARY;
+                               break;
+                       case MSG_CMAS_PRESIDENTIAL:
+                               *value = MSG_TYPE_SMS_CMAS_PRESIDENTIAL;
+                               break;
+                       case MSG_CMAS_PRESIDENTIAL_OTHER_LANG:
+                               *value = MSG_TYPE_SMS_CMAS_PRESIDENTIAL_OTHER_LANG;
+                               break;
+                       case MSG_CMAS_EXTREME:
+                               *value = MSG_TYPE_SMS_CMAS_EXTREME;
+                               break;
+                       case MSG_CMAS_EXTREME_OTHER_LANG:
+                               *value = MSG_TYPE_SMS_CMAS_EXTREME_OTHER_LANG;
+                               break;
+                       case MSG_CMAS_SEVERE:
+                               *value = MSG_TYPE_SMS_CMAS_SEVERE;
+                               break;
+                       case MSG_CMAS_SEVERE_OTHER_LANG:
+                               *value = MSG_TYPE_SMS_CMAS_SEVERE_OTHER_LANG;
+                               break;
+                       case MSG_CMAS_AMBER:
+                               *value = MSG_TYPE_SMS_CMAS_AMBER;
+                               break;
+                       case MSG_CMAS_AMBER_OTHER_LANG:
+                               *value = MSG_TYPE_SMS_CMAS_AMBER_OTHER_LANG;
+                               break;
+                       case MSG_CMAS_TEST:
+                               *value = MSG_TYPE_SMS_CMAS_TEST;
+                               break;
+                       case MSG_CMAS_TEST_OTHER_LANG:
+                               *value = MSG_TYPE_SMS_CMAS_TEST_OTHER_LANG;
+                               break;
+                       case MSG_CMAS_EXERCISE:
+                               *value = MSG_TYPE_SMS_CMAS_EXERCISE;
+                               break;
+                       case MSG_CMAS_EXERCISE_OTHER_LANG:
+                               *value = MSG_TYPE_SMS_CMAS_EXERCISE_OTHER_LANG;
+                               break;
+                       case MSG_CMAS_OPERATOR_DEFINED:
+                               *value = MSG_TYPE_SMS_CMAS_OPERATOR_DEFINED;
+                               break;
+                       case MSG_CMAS_OPERATOR_DEFINED_OTHER_LANG:
+                               *value = MSG_TYPE_SMS_CMAS_OPERATOR_DEFINED_OTHER_LANG;
+                               break;
+                       case MSG_CMAS_PUBLIC_SAFETY:
+                               *value = MSG_TYPE_SMS_CMAS_PUBLIC_SAFETY;
+                               break;
+                       case MSG_CMAS_PUBLIC_SAFETY_OTHER_LANG:
+                               *value = MSG_TYPE_SMS_CMAS_PUBLIC_SAFETY_OTHER_LANG;
+                               break;
+                       case MSG_CMAS_STATE_LOCAL_TEST:
+                               *value = MSG_TYPE_SMS_CMAS_STATE_LOCAL_TEST;
+                               break;
+                       case MSG_CMAS_STATE_LOCAL_TEST_OTHER_LANG:
+                               *value = MSG_TYPE_SMS_CMAS_STATE_LOCAL_TEST_OTHER_LANG;
+                               break;
+                       default:
+                               *value = MSG_TYPE_SMS;
+                               break;
                        }
-               }
-               else if (msg_data->mainType == MSG_MMS_TYPE)
-               {
+               } else if (msg_data->mainType == MSG_MMS_TYPE) {
                        if (msg_data->subType == MSG_NOTIFICATIONIND_MMS)
                                *value = MSG_TYPE_MMS_NOTI;
                        else if (msg_data->subType == MSG_SENDREQ_JAVA_MMS)
                                *value = MSG_TYPE_MMS_JAVA;
                        else
                                *value = MSG_TYPE_MMS;
-               }
-               else
+               } else {
                        *value = MSG_TYPE_INVALID;
+               }
 
                break;
        }
-       case MSG_MESSAGE_CLASS_TYPE_INT :
+       case MSG_MESSAGE_CLASS_TYPE_INT:
                *value = msg_data->classType;
                break;
-       case MSG_MESSAGE_STORAGE_ID_INT :
+       case MSG_MESSAGE_STORAGE_ID_INT:
                *value = msg_data->storageId;
                break;
-       case MSG_MESSAGE_DISPLAY_TIME_INT :
+       case MSG_MESSAGE_DISPLAY_TIME_INT:
                *value = msg_data->displayTime;
                break;
-       case MSG_MESSAGE_NETWORK_STATUS_INT :
+       case MSG_MESSAGE_NETWORK_STATUS_INT:
                *value = msg_data->networkStatus;
                break;
-       case MSG_MESSAGE_ENCODE_TYPE_INT :
+       case MSG_MESSAGE_ENCODE_TYPE_INT:
                *value = msg_data->encodeType;
                break;
-       case MSG_MESSAGE_PRIORITY_INT :
+       case MSG_MESSAGE_PRIORITY_INT:
                *value = msg_data->priority;
                break;
-       case MSG_MESSAGE_DIRECTION_INT :
+       case MSG_MESSAGE_DIRECTION_INT:
                *value = msg_data->direction;
                break;
-       case MSG_MESSAGE_DEST_PORT_INT :
+       case MSG_MESSAGE_DEST_PORT_INT:
                *value = msg_data->dstPort;
                break;
-       case MSG_MESSAGE_SRC_PORT_INT :
+       case MSG_MESSAGE_SRC_PORT_INT:
                *value = msg_data->srcPort;
                break;
-       case MSG_MESSAGE_ATTACH_COUNT_INT :
+       case MSG_MESSAGE_ATTACH_COUNT_INT:
                *value = msg_data->attachCount;
                break;
-       case MSG_MESSAGE_DATA_SIZE_INT :
+       case MSG_MESSAGE_DATA_SIZE_INT:
                *value = msg_data->dataSize;
                break;
-       case MSG_MESSAGE_SIM_INDEX_INT :
+       case MSG_MESSAGE_SIM_INDEX_INT:
                *value = msg_data->simIndex;
                break;
-       default :
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -291,27 +325,29 @@ int msg_message_get_bool_value(void *data, int field, bool *value)
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)data;
 
        switch (field) {
-       case MSG_MESSAGE_READ_BOOL :
+       case MSG_MESSAGE_READ_BOOL:
                *value = msg_data->bRead;
                break;
-       case MSG_MESSAGE_PROTECTED_BOOL :
+       case MSG_MESSAGE_PROTECTED_BOOL:
                *value = msg_data->bProtected;
                break;
-       case MSG_MESSAGE_BACKUP_BOOL :
+       case MSG_MESSAGE_BACKUP_BOOL:
                *value = msg_data->bBackup;
                break;
-       case MSG_MESSAGE_PORT_VALID_BOOL :
+       case MSG_MESSAGE_PORT_VALID_BOOL:
                *value = msg_data->bPortValid;
                break;
-       case MSG_MESSAGE_REPLACE_BOOL :
-       {
+       case MSG_MESSAGE_REPLACE_BOOL: {
                if (msg_data->subType >= MSG_REPLACE_TYPE1_SMS && msg_data->subType <= MSG_REPLACE_TYPE7_SMS)
                        *value = true;
                else
                        *value = false;
                break;
        }
-       default :
+       case MSG_MESSAGE_DPM_RESTRICTED_BOOL:
+               *value = msg_data->bRestricted;
+               break;
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -329,19 +365,15 @@ int msg_message_get_str_value(void *data, int field, char *value, int size)
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)data;
 
        switch (field) {
-       case MSG_MESSAGE_REPLY_ADDR_STR :
+       case MSG_MESSAGE_REPLY_ADDR_STR:
                strncpy(value, msg_data->replyAddress, size);
                break;
-       case MSG_MESSAGE_SUBJECT_STR :
+       case MSG_MESSAGE_SUBJECT_STR:
                strncpy(value, msg_data->subject, size);
                break;
-       case MSG_MESSAGE_THUMBNAIL_PATH_STR :
-               strncpy(value, msg_data->thumbPath, size);
-               break;
-       case MSG_MESSAGE_SMS_DATA_STR :
-       case MSG_MESSAGE_MMS_TEXT_STR :
-               if (msg_data->pData)
-               {
+       case MSG_MESSAGE_SMS_DATA_STR:
+       case MSG_MESSAGE_MMS_TEXT_STR:
+               if (msg_data->pData) {
                        if (msg_data->mainType == MSG_SMS_TYPE) {
                                int data_len = 0;
                                ((size_t)size >= msg_data->dataSize)? (data_len = msg_data->dataSize) : data_len = size;
@@ -354,7 +386,7 @@ int msg_message_get_str_value(void *data, int field, char *value, int size)
                }
                break;
 
-       default :
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -370,7 +402,7 @@ int msg_message_get_struct_hnd(void *data, int field, void **value)
        int ret = MSG_SUCCESS;
 
        switch (field) {
-       default :
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -388,13 +420,13 @@ int msg_message_get_list_hnd(void *data, int field, void **value)
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)data;
 
        switch (field) {
-       case MSG_MESSAGE_ADDR_LIST_STRUCT :
+       case MSG_MESSAGE_ADDR_LIST_STRUCT:
                *value = (void *)msg_data->addr_list;
                break;
-       case MSG_MESSAGE_ADDR_LIST_HND :
+       case MSG_MESSAGE_ADDR_LIST_HND:
                *value = (msg_list_handle_t)msg_data->addressList;
                break;
-       default :
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -411,82 +443,77 @@ int msg_message_set_int_value(void *data, int field, int value)
 
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)data;
 
-       switch (field)
-       {
-       case MSG_MESSAGE_ID_INT :
+       switch (field) {
+       case MSG_MESSAGE_ID_INT:
                msg_data->msgId = value;
                break;
-       case MSG_MESSAGE_THREAD_ID_INT :
+       case MSG_MESSAGE_THREAD_ID_INT:
                msg_data->threadId = value;
                break;
-       case MSG_MESSAGE_FOLDER_ID_INT :
+       case MSG_MESSAGE_FOLDER_ID_INT:
                msg_data->folderId = value;
                break;
-       case MSG_MESSAGE_TYPE_INT :
-       {
+       case MSG_MESSAGE_TYPE_INT: {
                if (value == MSG_TYPE_SMS) {
                        msg_data->mainType = MSG_SMS_TYPE;
                        msg_data->subType = MSG_NORMAL_SMS;
-               }
-               else if (value == MSG_TYPE_MMS) {
+               } else if (value == MSG_TYPE_MMS) {
                        msg_data->mainType = MSG_MMS_TYPE;
                        msg_data->subType = MSG_SENDREQ_MMS;
-               }
-               else if (value == MSG_TYPE_MMS_JAVA) {
+               } else if (value == MSG_TYPE_MMS_JAVA) {
                        msg_data->mainType = MSG_MMS_TYPE;
                        msg_data->subType = MSG_SENDREQ_JAVA_MMS;
-               }
-               else if (value == MSG_TYPE_SMS_SYNCML) {
+               } else if (value == MSG_TYPE_SMS_SYNCML) {
                        msg_data->mainType = MSG_SMS_TYPE;
                        msg_data->subType = MSG_SYNCML_CP;
-               }
-               else if (value == MSG_TYPE_SMS_REJECT) {
+               } else if (value == MSG_TYPE_SMS_REJECT) {
                        msg_data->mainType = MSG_SMS_TYPE;
                        msg_data->subType = MSG_REJECT_SMS;
-               }
-               else if (value == MSG_TYPE_SMS_ETWS_PRIMARY) {
+               } else if (value == MSG_TYPE_SMS_ETWS_PRIMARY) {
                        msg_data->mainType = MSG_SMS_TYPE;
                        msg_data->subType = MSG_ETWS_SMS;
+               } else {
+                       ret = MSG_ERR_INVALID_PARAMETER;
                }
-        break;
+               break;
        }
-       case MSG_MESSAGE_CLASS_TYPE_INT :
+       case MSG_MESSAGE_CLASS_TYPE_INT:
                msg_data->classType = value;
                break;
-       case MSG_MESSAGE_STORAGE_ID_INT :
+       case MSG_MESSAGE_STORAGE_ID_INT:
                msg_data->storageId = value;
                break;
-       case MSG_MESSAGE_DISPLAY_TIME_INT :
+       case MSG_MESSAGE_DISPLAY_TIME_INT:
                msg_data->displayTime = value;
                break;
-       case MSG_MESSAGE_NETWORK_STATUS_INT :
+       case MSG_MESSAGE_NETWORK_STATUS_INT:
                msg_data->networkStatus = value;
                break;
-       case MSG_MESSAGE_ENCODE_TYPE_INT :
+       case MSG_MESSAGE_ENCODE_TYPE_INT:
                msg_data->encodeType = value;
                break;
-       case MSG_MESSAGE_PRIORITY_INT :
+       case MSG_MESSAGE_PRIORITY_INT:
                msg_data->priority = value;
                break;
-       case MSG_MESSAGE_DIRECTION_INT :
+       case MSG_MESSAGE_DIRECTION_INT:
                msg_data->direction = value;
                break;
-       case MSG_MESSAGE_DEST_PORT_INT :
+       case MSG_MESSAGE_DEST_PORT_INT:
                msg_data->dstPort = value;
                break;
-       case MSG_MESSAGE_SRC_PORT_INT :
+       case MSG_MESSAGE_SRC_PORT_INT:
                msg_data->srcPort = value;
                break;
-       case MSG_MESSAGE_ATTACH_COUNT_INT :
+       case MSG_MESSAGE_ATTACH_COUNT_INT:
                 msg_data->attachCount = value;
                break;
-       case MSG_MESSAGE_DATA_SIZE_INT :
+       case MSG_MESSAGE_DATA_SIZE_INT:
                msg_data->dataSize = value;
                break;
-       case MSG_MESSAGE_SIM_INDEX_INT :
+       case MSG_MESSAGE_SIM_INDEX_INT:
                msg_data->simIndex = value;
                break;
-       default :
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -504,19 +531,19 @@ int msg_message_set_bool_value(void *data, int field, bool value)
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)data;
 
        switch (field) {
-       case MSG_MESSAGE_READ_BOOL :
+       case MSG_MESSAGE_READ_BOOL:
                msg_data->bRead = value;
                break;
-       case MSG_MESSAGE_PROTECTED_BOOL :
+       case MSG_MESSAGE_PROTECTED_BOOL:
                msg_data->bProtected = value;
                break;
-       case MSG_MESSAGE_BACKUP_BOOL :
+       case MSG_MESSAGE_BACKUP_BOOL:
                msg_data->bBackup = value;
                break;
-       case MSG_MESSAGE_PORT_VALID_BOOL :
+       case MSG_MESSAGE_PORT_VALID_BOOL:
                msg_data->bPortValid = value;
                break;
-       default :
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -524,7 +551,7 @@ int msg_message_set_bool_value(void *data, int field, bool value)
        return ret;
 }
 
-int msg_message_set_str_value(void *data, int field, char *value, int size)
+int msg_message_set_str_value(void *data, int field, const char *value, int size)
 {
        if (!data || !value)
                return MSG_ERR_NULL_POINTER;
@@ -534,17 +561,13 @@ int msg_message_set_str_value(void *data, int field, char *value, int size)
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)data;
 
        switch (field) {
-       case MSG_MESSAGE_REPLY_ADDR_STR :
+       case MSG_MESSAGE_REPLY_ADDR_STR:
                snprintf(msg_data->replyAddress, sizeof(msg_data->replyAddress), "%s", value);
                break;
-       case MSG_MESSAGE_SUBJECT_STR :
-               snprintf(msg_data->subject, sizeof(msg_data->subject), "%s",value);
-               break;
-       case MSG_MESSAGE_THUMBNAIL_PATH_STR :
-               snprintf(msg_data->thumbPath, sizeof(msg_data->thumbPath), "%s",value);
+       case MSG_MESSAGE_SUBJECT_STR:
+               snprintf(msg_data->subject, sizeof(msg_data->subject), "%s", value);
                break;
-       case MSG_MESSAGE_SMS_DATA_STR :
-       {
+       case MSG_MESSAGE_SMS_DATA_STR: {
                if (msg_data->pData)
                        delete [] static_cast<char*>(msg_data->pData);
 
@@ -554,7 +577,7 @@ int msg_message_set_str_value(void *data, int field, char *value, int size)
                ((char*) msg_data->pData)[msg_data->dataSize] = '\0';
        }
                break;
-       default :
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -570,7 +593,7 @@ int msg_message_set_struct_hnd(void *data, int field, void *value)
        int ret = MSG_SUCCESS;
 
        switch (field) {
-       default :
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -580,7 +603,6 @@ int msg_message_set_struct_hnd(void *data, int field, void *value)
 
 void msg_message_copy_message(MSG_MESSAGE_HIDDEN_S *pSrc, MSG_MESSAGE_HIDDEN_S *pDst)
 {
-
        pDst->msgId = pSrc->msgId;
        pDst->threadId = pSrc->msgId;
        pDst->folderId = pSrc->folderId;
@@ -602,14 +624,12 @@ void msg_message_copy_message(MSG_MESSAGE_HIDDEN_S *pSrc, MSG_MESSAGE_HIDDEN_S *
        pDst->simIndex = pSrc->simIndex;
        memcpy(pDst->subject, pSrc->subject, sizeof(pDst->subject));
 
-       if(pSrc->pMmsData && pSrc->mmsDataSize)
-       {
+       if (pSrc->pMmsData && pSrc->mmsDataSize) {
                pDst->pMmsData = new char[pSrc->mmsDataSize];
                memcpy(pDst->pMmsData, pSrc->pMmsData, pSrc->mmsDataSize);
        }
 
-       if(pSrc->dataSize && pSrc->pData)
-       {
+       if (pSrc->dataSize && pSrc->pData) {
                int data_len = strlen((const char *)pSrc->pData);
                pDst->pData = new char[data_len + 1];
                memset(pDst->pData, 0x00, data_len + 1);
@@ -620,8 +640,7 @@ void msg_message_copy_message(MSG_MESSAGE_HIDDEN_S *pSrc, MSG_MESSAGE_HIDDEN_S *
        msg_struct_list_s *dst_addrlist = pDst->addr_list;
        dst_addrlist->nCount = src_addrlist->nCount;
 
-       for(int i=0; i < MAX_TO_ADDRESS_CNT; ++i)
-       {
+       for (int i = 0; i < MAX_TO_ADDRESS_CNT; ++i) {
                msg_struct_s *src_addr = (msg_struct_s *)src_addrlist->msg_struct_info[i];
                msg_struct_s *dst_addr = (msg_struct_s *)dst_addrlist->msg_struct_info[i];
                memcpy(dst_addr->data, src_addr->data, sizeof(MSG_ADDRESS_INFO_S));
@@ -632,11 +651,11 @@ void msg_message_copy_message(MSG_MESSAGE_HIDDEN_S *pSrc, MSG_MESSAGE_HIDDEN_S *
                memcpy(pDst->thumbPath, pSrc->thumbPath, sizeof(pDst->thumbPath));
        }
 
-       for (unsigned int i=0; i < g_list_length(pSrc->addressList); i++) {
+       for (unsigned int i = 0; i < g_list_length(pSrc->addressList); i++) {
                msg_struct_s *addr_struct = __msg_message_create_address_struct();
                MSG_ADDRESS_INFO_S *addrInfo = (MSG_ADDRESS_INFO_S *)addr_struct->data;
 
-               msg_struct_s *addr_info = (msg_struct_s *)g_list_nth_data(pSrc->addressList,(guint)i);
+               msg_struct_s *addr_info = (msg_struct_s *)g_list_nth_data(pSrc->addressList, (guint)i);
                MSG_ADDRESS_INFO_S *address = (MSG_ADDRESS_INFO_S *)addr_info->data;
 
                addrInfo->addressType = address->addressType;
@@ -650,6 +669,7 @@ void msg_message_copy_message(MSG_MESSAGE_HIDDEN_S *pSrc, MSG_MESSAGE_HIDDEN_S *
        }
 }
 
+//LCOV_EXCL_START
 int msg_cb_message_get_int_value(void *data, int field, int *value)
 {
        if (!data)
@@ -661,61 +681,98 @@ int msg_cb_message_get_int_value(void *data, int field, int *value)
 
        *value = 0;
 
-       switch (field)
-       {
-               case MSG_CB_MSG_TYPE_INT :
-                       {
-                               switch (cb_msg->type) {
-                                       case MSG_ETWS_SMS :
-                                               *value = MSG_TYPE_SMS_ETWS_PRIMARY;
-                                               break;
-                                       case MSG_CB_SMS:
-                                               *value = ((cb_msg->messageId & 0xFFF8) == 0x1100 ) ? MSG_TYPE_SMS_ETWS_SECONDARY : MSG_TYPE_SMS_CB;
-                                               break;
-                                       case MSG_CMAS_PRESIDENTIAL :
-                                               *value = MSG_TYPE_SMS_CMAS_PRESIDENTIAL;
-                                               break;
-                                       case MSG_CMAS_EXTREME :
-                                               *value = MSG_TYPE_SMS_CMAS_EXTREME;
-                                               break;
-                                       case MSG_CMAS_SEVERE :
-                                               *value = MSG_TYPE_SMS_CMAS_SEVERE;
-                                               break;
-                                       case MSG_CMAS_AMBER :
-                                               *value = MSG_TYPE_SMS_CMAS_AMBER;
-                                               break;
-                                       case MSG_CMAS_TEST :
-                                               *value = MSG_TYPE_SMS_CMAS_TEST;
-                                               break;
-                                       case MSG_CMAS_OPERATOR_DEFINED :
-                                               *value = MSG_TYPE_SMS_CMAS_OPERATOR_DEFINED;
-                                               break;
-                                       default :
-                                               ret = MSG_ERR_UNKNOWN;
-                               }
-                       }
+       switch (field) {
+       case MSG_CB_MSG_TYPE_INT: {
+               switch (cb_msg->type) {
+               case MSG_ETWS_SMS:
+                       *value = MSG_TYPE_SMS_ETWS_PRIMARY;
                        break;
-               case MSG_CB_MSG_RECV_TIME_INT :
-                       *value = cb_msg->receivedTime;
+               case MSG_CB_SMS:
+                       *value = ((cb_msg->messageId & 0xFFF8) == 0x1100) ? MSG_TYPE_SMS_ETWS_SECONDARY : MSG_TYPE_SMS_CB;
                        break;
-               case MSG_CB_MSG_SERIAL_NUM_INT :
-                       *value = cb_msg->serialNum;
+               case MSG_CMAS_PRESIDENTIAL:
+                       *value = MSG_TYPE_SMS_CMAS_PRESIDENTIAL;
                        break;
-               case MSG_CB_MSG_MSG_ID_INT :
-                       *value = cb_msg->messageId;
+               case MSG_CMAS_PRESIDENTIAL_OTHER_LANG:
+                       *value = MSG_TYPE_SMS_CMAS_PRESIDENTIAL_OTHER_LANG;
                        break;
-               case MSG_CB_MSG_DCS_INT :
-                       *value = (int)cb_msg->dcs;
+               case MSG_CMAS_EXTREME:
+                       *value = MSG_TYPE_SMS_CMAS_EXTREME;
                        break;
-               case MSG_CB_MSG_CB_TEXT_LEN_INT :
-                       *value = cb_msg->cbTextLen;
+               case MSG_CMAS_EXTREME_OTHER_LANG:
+                       *value = MSG_TYPE_SMS_CMAS_EXTREME_OTHER_LANG;
                        break;
-               case MSG_CB_MSG_ETWS_WARNING_TYPE_INT :
-                       *value = cb_msg->etwsWarningType;
+               case MSG_CMAS_SEVERE:
+                       *value = MSG_TYPE_SMS_CMAS_SEVERE;
                        break;
-               default :
-                       ret = MSG_ERR_INVALID_PARAMETER;
+               case MSG_CMAS_SEVERE_OTHER_LANG:
+                       *value = MSG_TYPE_SMS_CMAS_SEVERE_OTHER_LANG;
+                       break;
+               case MSG_CMAS_AMBER:
+                       *value = MSG_TYPE_SMS_CMAS_AMBER;
+                       break;
+               case MSG_CMAS_AMBER_OTHER_LANG:
+                       *value = MSG_TYPE_SMS_CMAS_AMBER_OTHER_LANG;
+                       break;
+               case MSG_CMAS_TEST:
+                       *value = MSG_TYPE_SMS_CMAS_TEST;
+                       break;
+               case MSG_CMAS_TEST_OTHER_LANG:
+                       *value = MSG_TYPE_SMS_CMAS_TEST_OTHER_LANG;
+                       break;
+               case MSG_CMAS_EXERCISE:
+                       *value = MSG_TYPE_SMS_CMAS_EXERCISE;
+                       break;
+               case MSG_CMAS_EXERCISE_OTHER_LANG:
+                       *value = MSG_TYPE_SMS_CMAS_EXERCISE_OTHER_LANG;
+                       break;
+               case MSG_CMAS_OPERATOR_DEFINED:
+                       *value = MSG_TYPE_SMS_CMAS_OPERATOR_DEFINED;
+                       break;
+               case MSG_CMAS_OPERATOR_DEFINED_OTHER_LANG:
+                       *value = MSG_TYPE_SMS_CMAS_OPERATOR_DEFINED_OTHER_LANG;
+                       break;
+               case MSG_CMAS_PUBLIC_SAFETY:
+                       *value = MSG_TYPE_SMS_CMAS_PUBLIC_SAFETY;
+                       break;
+               case MSG_CMAS_PUBLIC_SAFETY_OTHER_LANG:
+                       *value = MSG_TYPE_SMS_CMAS_PUBLIC_SAFETY_OTHER_LANG;
                        break;
+               case MSG_CMAS_STATE_LOCAL_TEST:
+                       *value = MSG_TYPE_SMS_CMAS_STATE_LOCAL_TEST;
+                       break;
+               case MSG_CMAS_STATE_LOCAL_TEST_OTHER_LANG:
+                       *value = MSG_TYPE_SMS_CMAS_STATE_LOCAL_TEST_OTHER_LANG;
+                       break;
+               default:
+                       ret = MSG_ERR_UNKNOWN;
+               }
+       }
+               break;
+       case MSG_CB_MSG_RECV_TIME_INT:
+               *value = cb_msg->receivedTime;
+               break;
+       case MSG_CB_MSG_SERIAL_NUM_INT:
+               *value = cb_msg->serialNum;
+               break;
+       case MSG_CB_MSG_MSG_ID_INT:
+               *value = cb_msg->messageId;
+               break;
+       case MSG_CB_MSG_DCS_INT:
+               *value = (int)cb_msg->dcs;
+               break;
+       case MSG_CB_MSG_CB_TEXT_LEN_INT:
+               *value = cb_msg->cbTextLen;
+               break;
+       case MSG_CB_MSG_ETWS_WARNING_TYPE_INT:
+               *value = cb_msg->etwsWarningType;
+               break;
+       case MSG_CB_MSG_INTERNAL_MSG_ID_INT:
+               *value = cb_msg->msgId;
+               break;
+       default:
+               ret = MSG_ERR_INVALID_PARAMETER;
+               break;
        }
 
        return ret;
@@ -731,66 +788,60 @@ int msg_cb_message_get_str_value(void *data, int field, char *value, int size)
        MSG_CB_MSG_S *cb_msg = (MSG_CB_MSG_S *)data;
 
        switch (field) {
-               case MSG_CB_MSG_CB_TEXT_STR:
-                       {
-                               int     copylen = 0;
-                               copylen = (size > cb_msg->cbTextLen) ? cb_msg->cbTextLen : size - 1;
-                               memcpy (value, cb_msg->cbText, copylen);
-                               value[copylen] = '\0';
-                       }
-                       break;
-               case MSG_CB_MSG_LANGUAGE_TYPE_STR:
-                       {
-                               int     copylen = 0;
-                               copylen = ((size_t)size > strlen((const char*)cb_msg->language_type)) ? strlen((const char*)cb_msg->language_type) : size - 1;
-                               memcpy (value, cb_msg->language_type, copylen);
-                               value[copylen] = '\0';
-                       }
-                       break;
-               case MSG_CB_MSG_ETWS_WARNING_SECU_INFO_STR:
-                       {
-                               if ((size_t)size < sizeof(cb_msg->etwsWarningSecurityInfo))
-                                       ret = MSG_ERR_INVALID_PARAMETER;
-                               else
-                                       memcpy (value, cb_msg->etwsWarningSecurityInfo, sizeof(cb_msg->etwsWarningSecurityInfo));
-                       }
-                       break;
-
-               default :
+       case MSG_CB_MSG_CB_TEXT_STR: {
+               int     copylen = 0;
+               copylen = (size > cb_msg->cbTextLen) ? cb_msg->cbTextLen : size - 1;
+               memcpy(value, cb_msg->cbText, copylen);
+               value[copylen] = '\0';
+       }
+       break;
+       case MSG_CB_MSG_LANGUAGE_TYPE_STR: {
+               int     copylen = 0;
+               copylen = ((size_t)size > strlen((const char*)cb_msg->language_type)) ? strlen((const char*)cb_msg->language_type) : size - 1;
+               memcpy(value, cb_msg->language_type, copylen);
+               value[copylen] = '\0';
+       }
+       break;
+       case MSG_CB_MSG_ETWS_WARNING_SECU_INFO_STR: {
+               if ((size_t)size < sizeof(cb_msg->etwsWarningSecurityInfo))
                        ret = MSG_ERR_INVALID_PARAMETER;
-                       break;
+               else
+                       memcpy (value, cb_msg->etwsWarningSecurityInfo, sizeof(cb_msg->etwsWarningSecurityInfo));
+       }
+       break;
+
+       default:
+               ret = MSG_ERR_INVALID_PARAMETER;
+               break;
        }
 
        return ret;
 }
-
+//LCOV_EXCL_STOP
 
 
 EXPORT_API int msg_get_mms_struct(msg_struct_t msg_struct_handle, msg_struct_t mms_struct_handle)
 {
        CHECK_MSG_SUPPORTED(MSG_TELEPHONY_MMS_FEATURE);
-       //TODO :: check message type is MMS
+       /* TODO :: check message type is MMS */
        int ret = MSG_SUCCESS;
-       msg_struct_s *msg_struct = (msg_struct_s *)msg_struct_handle;
-       msg_struct_s *mms_struct = (msg_struct_s *)mms_struct_handle;
 
-       if (msg_struct == NULL || mms_struct == NULL) {
+       if (msg_struct_handle == NULL || mms_struct_handle == NULL)
                return MSG_ERR_INVALID_PARAMETER;
-       }
 
-       if (msg_struct->data == NULL || mms_struct->data == NULL) {
-               return MSG_ERR_INVALID_PARAMETER;
-       }
+       msg_struct_s *msg_struct = (msg_struct_s *)msg_struct_handle;
+       msg_struct_s *mms_struct = (msg_struct_s *)mms_struct_handle;
 
-       if (msg_struct->type != MSG_STRUCT_MESSAGE_INFO || mms_struct->type != MSG_STRUCT_MMS) {
+       MSG_TYPE_CHECK(msg_struct->type, MSG_STRUCT_MESSAGE_INFO);
+       MSG_TYPE_CHECK(mms_struct->type, MSG_STRUCT_MMS);
+
+       if (msg_struct->data == NULL || mms_struct->data == NULL)
                return MSG_ERR_INVALID_PARAMETER;
-       }
 
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)msg_struct->data;
 
-       if (msg_data->pMmsData == NULL) {
+       if (msg_data->pMmsData == NULL)
                return MSG_ERR_INVALID_PARAMETER;
-       }
 
        MMS_DATA_S *mms_data = NULL;
 
@@ -810,26 +861,26 @@ EXPORT_API int msg_get_mms_struct(msg_struct_t msg_struct_handle, msg_struct_t m
 EXPORT_API int msg_set_mms_struct(msg_struct_t msg_struct_handle, msg_struct_t mms_struct_handle)
 {
        CHECK_MSG_SUPPORTED(MSG_TELEPHONY_MMS_FEATURE);
-       //TODO :: check message type is MMS
+       /* TODO :: check message type is MMS */
        int ret = MSG_SUCCESS;
-       msg_struct_s *msg_struct = (msg_struct_s *)msg_struct_handle;
-       msg_struct_s *mms_struct = (msg_struct_s *)mms_struct_handle;
 
-       if (msg_struct == NULL || mms_struct == NULL) {
+       if (msg_struct_handle == NULL || mms_struct_handle == NULL)
                return MSG_ERR_INVALID_PARAMETER;
-       }
 
-       if (msg_struct->data == NULL || mms_struct->data == NULL) {
-               return MSG_ERR_INVALID_PARAMETER;
-       }
+       msg_struct_s *msg_struct = (msg_struct_s *)msg_struct_handle;
+       msg_struct_s *mms_struct = (msg_struct_s *)mms_struct_handle;
+
+       MSG_TYPE_CHECK(msg_struct->type, MSG_STRUCT_MESSAGE_INFO);
+       MSG_TYPE_CHECK(mms_struct->type, MSG_STRUCT_MMS);
 
-       if (msg_struct->type != MSG_STRUCT_MESSAGE_INFO || mms_struct->type != MSG_STRUCT_MMS) {
+       if (msg_struct->data == NULL || mms_struct->data == NULL)
                return MSG_ERR_INVALID_PARAMETER;
-       }
 
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)msg_struct->data;
 
        MMS_DATA_S *mms_data = MsgMmsCreate();
+       if (mms_data == NULL)
+               return MSG_ERR_MEMORY_ERROR;
 
        convert_from_hidden_mmsdata(mms_struct, mms_data);
 
@@ -838,7 +889,7 @@ EXPORT_API int msg_set_mms_struct(msg_struct_t msg_struct_handle, msg_struct_t m
        if (mmsDataSize > 0)
                msg_data->mmsDataSize = mmsDataSize;
 
-       //TODO:: set subtype
+       /* TODO:: set subtype */
 
        MsgMmsRelease(&mms_data);
 
@@ -853,15 +904,14 @@ int msg_message_list_append(msg_struct_t msg_struct_handle, int field, msg_struc
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)msg_struct->data;
 
        msg_struct_s *msg_struct_item = NULL;
-       switch(field) {
-       case MSG_MESSAGE_ADDR_LIST_HND:
-       {
+       switch (field) {
+       case MSG_MESSAGE_ADDR_LIST_HND: {
                msg_struct_item = __msg_message_create_address_struct();
                msg_data->addressList = g_list_append(msg_data->addressList, msg_struct_item);
                *item = (msg_struct_t)msg_struct_item;
        }
        break;
-       default :
+       default:
                err = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -876,17 +926,16 @@ int msg_message_list_clear(msg_struct_t msg_struct_handle, int field)
        msg_struct_s *msg_struct = (msg_struct_s *)msg_struct_handle;
        MSG_MESSAGE_HIDDEN_S *msg_data = (MSG_MESSAGE_HIDDEN_S *)msg_struct->data;
 
-       switch(field) {
-       case MSG_MESSAGE_ADDR_LIST_HND:
-       {
-               // Free GList *addressList
+       switch (field) {
+       case MSG_MESSAGE_ADDR_LIST_HND: {
+               /* Free GList *addressList */
                if (msg_data->addressList) {
                        g_list_free_full(msg_data->addressList, __msg_message_release_address_struct);
                        msg_data->addressList = NULL;
                }
        }
        break;
-       default :
+       default:
                err = MSG_ERR_INVALID_PARAMETER;
                break;
        }
@@ -904,10 +953,10 @@ int msg_conversation_get_list_hnd(void *data, int field, void **value)
        MSG_CONVERSATION_VIEW_S *msg_data = (MSG_CONVERSATION_VIEW_S *)data;
 
        switch (field) {
-       case MSG_CONV_MSG_MULTIPART_HND :
+       case MSG_CONV_MSG_MULTIPART_HND:
                *value = (void *)msg_data->multipart_list;
                break;
-       default :
+       default:
                ret = MSG_ERR_INVALID_PARAMETER;
                break;
        }