P121210-0492 fixed smilparser for problem that image area changed to attachment
authorSeunghwan Lee <sh.cat.lee@samsung.com>
Thu, 3 Jan 2013 10:10:50 +0000 (19:10 +0900)
committerSeunghwan Lee <sh.cat.lee@samsung.com>
Thu, 3 Jan 2013 10:10:50 +0000 (19:10 +0900)
plugin/mms_plugin/MmsPluginSmil.cpp

index a1a9e37..16ef186 100755 (executable)
@@ -341,43 +341,44 @@ void MmsSmilGetElement(MMS_MESSAGE_DATA_S *pMmsMsg, xmlNode *a_node)
                                        break;
 
                                case ATTRIBUTE_SRC:
-                                       {
-                                               char *szSrc;
-                                               char szTmpSrc[MSG_FILEPATH_LEN_MAX] = {0,};
-                                               char szOutBuf[MSG_FILEPATH_LEN_MAX] = {0, };
-                                               int cLen;
-                                               MsgMultipart *pPart = NULL;
-                                               MmsMsg *pMsg;
-
-                                               szSrc = MsgChangeHexString((char *)pAttr->children->content);
-                                               if (szSrc == NULL)
-                                                       break;
-
-                                               memcpy(pMedia->szSrc, szSrc, strlen(szSrc) + 1);
-                                               free(szSrc);
-
-                                               cLen = strlen(pMedia->szSrc);
-                                               if (!strncasecmp(pMedia->szSrc, "cid:", 4)) {
-                                                       strncpy(szTmpSrc, pMedia->szSrc + 4, cLen - 4);
-                                                       szTmpSrc[cLen - 4] = '\0';
-                                               } else {
-                                                       strncpy(szTmpSrc, pMedia->szSrc, cLen);
-                                                       szTmpSrc[cLen] = '\0';
-                                               }
+                               {
+                                       char *szSrc;
+                                       char szTmpSrc[MSG_FILEPATH_LEN_MAX] = {0,};
+                                       char szOutBuf[MSG_FILEPATH_LEN_MAX] = {0, };
+                                       int cLen;
+                                       int ret;
+                                       MsgMultipart *pPart = NULL;
+                                       MmsMsg *pMsg;
+
+                                       szSrc = MsgChangeHexString((char *)pAttr->children->content);
+                                       if (szSrc == NULL)
+                                               break;
+
+                                       memcpy(pMedia->szSrc, szSrc, strlen(szSrc) + 1);
+                                       free(szSrc);
 
-                                               MmsPluginStorage::instance()->getMmsMessage(&pMsg);
-                                               pPart = pMsg->msgBody.body.pMultipart;
+                                       cLen = strlen(pMedia->szSrc);
+                                       if (!strncasecmp(pMedia->szSrc, "cid:", 4)) {
+                                               strncpy(szTmpSrc, pMedia->szSrc + 4, cLen - 4);
+                                               szTmpSrc[cLen - 4] = '\0';
+                                       } else {
+                                               strncpy(szTmpSrc, pMedia->szSrc, cLen);
+                                               szTmpSrc[cLen] = '\0';
+                                       }
+
+                                       MmsPluginStorage::instance()->getMmsMessage(&pMsg);
+                                       pPart = pMsg->msgBody.body.pMultipart;
 #ifndef __SUPPORT_DRM__
-                                               MmsSmilGetMediaSrcForNormalMsg(szOutBuf, szTmpSrc, pPart);
+                                       ret = MmsSmilGetMediaSrcForNormalMsg(szOutBuf, szTmpSrc, pPart);
 #else
-                                               MmsSmilGetMediaSrcForNormalMsg(szOutBuf, szTmpSrc, pPart, pMedia);
+                                       ret = MmsSmilGetMediaSrcForNormalMsg(szOutBuf, szTmpSrc, pPart, pMedia);
 #endif
-
+                                       if (ret >= 0 && strlen(szOutBuf) > 0) {
                                                strcpy(pMedia->szSrc, szOutBuf);
                                                MmsSmilGetMediaFilePath(pMedia, szTmpSrc, pMsg->msgID);
                                        }
                                        break;
-
+                               }
                                case ATTRIBUTE_COLOR:
                                        if (cmd[ELEMENT_TEXT])
                                                pMedia->sMedia.sText.nColor = MmsSmilGetColorValue(pAttr->children->content);