[P170213-04010] Copy valid unicode string to main text of thread list
[platform/core/messaging/msg-service.git] / utils / MsgUtilStorage.cpp
index d3be5c7..bef4319 100755 (executable)
@@ -1736,8 +1736,15 @@ msg_error_t MsgStoGetThreadViewList(const MSG_SORT_RULE_S *pSortRule, msg_struct
                memset(pTmp->threadName, 0x00, sizeof(pTmp->threadName));
                dbHandle->getColumnToString(index++, MAX_THREAD_NAME_LEN, pTmp->threadName);
 
+               char tmpData[MAX_THREAD_DATA_LEN + 1] = {0};
+               dbHandle->getColumnToString(index++, MAX_THREAD_DATA_LEN, tmpData);
                memset(pTmp->threadData, 0x00, sizeof(pTmp->threadData));
-               dbHandle->getColumnToString(index++, MAX_THREAD_DATA_LEN, pTmp->threadData);
+               char *end = NULL;
+               if (g_utf8_validate(tmpData, -1, (const gchar **)&end) == true) {
+                       g_utf8_strncpy(pTmp->threadData, tmpData, g_utf8_strlen(tmpData, -1));
+               } else {
+                       g_utf8_strncpy(pTmp->threadData, tmpData, g_utf8_strlen(tmpData, end - tmpData));
+               }
 
                pTmp->bProtected = (dbHandle->getColumnToInt(index++) > 0) ? true : false;
                pTmp->bDraft = dbHandle->getColumnToInt(index++);