[P170213-04010] Copy valid unicode string to main text of thread list
[platform/core/messaging/msg-service.git] / framework / storage-handler / MsgStorageMessage.cpp
index 53b6647..71ddb2b 100755 (executable)
@@ -2823,8 +2823,15 @@ msg_error_t MsgStoGetThreadInfo(msg_thread_id_t threadId, MSG_THREAD_VIEW_S *pTh
                memset(pThreadInfo->threadName, 0x00, sizeof(pThreadInfo->threadName));
                dbHandle->getColumnToString(index++, MAX_THREAD_NAME_LEN, pThreadInfo->threadName);
 
+               char tmpData[MAX_THREAD_DATA_LEN + 1] = {0};
+               dbHandle->getColumnToString(index++, MAX_THREAD_DATA_LEN, tmpData);
                memset(pThreadInfo->threadData, 0x00, sizeof(pThreadInfo->threadData));
-               dbHandle->getColumnToString(index++, MAX_THREAD_DATA_LEN, pThreadInfo->threadData);
+               char *end = NULL;
+               if (g_utf8_validate(tmpData, -1, (const gchar **)&end) == true) {
+                       g_utf8_strncpy(pThreadInfo->threadData, tmpData, g_utf8_strlen(tmpData, -1));
+               } else {
+                       g_utf8_strncpy(pThreadInfo->threadData, tmpData, g_utf8_strlen(tmpData, end - tmpData));
+               }
 
                pThreadInfo->bProtected = (dbHandle->getColumnToInt(index++) > 0) ? true : false;
                pThreadInfo->bDraft = dbHandle->getColumnToInt(index++);