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);