Coverity issue resolved resource_leak
[platform/core/messaging/msg-service.git] / plugin / sms_plugin / 3gpp / Sms3gppWapPushHandler.cpp
index 436ac43..e69dcb6 100755 (executable)
@@ -1415,6 +1415,14 @@ void Sms3gppWapPushHandler::handleMMSNotification(const char *pPushBody, int Pus
 }
 
 
+void XmlFree(xmlChar* tmpXml)
+{
+       if (tmpXml != NULL) {
+               xmlFree(tmpXml);
+               tmpXml = NULL;
+       }
+}
+
 void Sms3gppWapPushHandler::handleSIMessage(char* pPushBody, int PushBodyLen, bool isText, int simIndex)
 {
        MSG_BEGIN();
@@ -1482,11 +1490,15 @@ void Sms3gppWapPushHandler::handleSIMessage(char* pPushBody, int PushBodyLen, bo
        if (tmpXmlChar != NULL)
                strncpy(pushMsg.href, (char*)tmpXmlChar, MAX_WAPPUSH_HREF_LEN-1);
 
+       XmlFree(tmpXmlChar);
+
        tmpXmlChar = xmlGetProp(indNode, (xmlChar*)SMS_PUSH_XML_SI_ID_TAG);
 
        if (tmpXmlChar != NULL)
                strncpy(pushMsg.id, (char*)tmpXmlChar, MAX_WAPPUSH_ID_LEN-1);
 
+       XmlFree(tmpXmlChar);
+
        tmpXmlChar = xmlGetProp(indNode, (xmlChar*)SMS_PUSH_XML_CREATED_TAG);
 
        if (tmpXmlChar != NULL)
@@ -1495,15 +1507,21 @@ void Sms3gppWapPushHandler::handleSIMessage(char* pPushBody, int PushBodyLen, bo
        if (pushMsg.created == 0)
                pushMsg.created = pushMsg.received;
 
+       XmlFree(tmpXmlChar);
+
        tmpXmlChar = xmlGetProp(indNode, (xmlChar*)SMS_PUSH_XML_EXPIRES_TAG);
 
        if (tmpXmlChar != NULL)
                pushMsg.expires = convertXmlCharToSec((char*)tmpXmlChar);
 
+       XmlFree(tmpXmlChar);
+
        tmpXmlChar = xmlGetProp(indNode, (xmlChar*)SMS_PUSH_XML_ACTION_TAG);
 
        pushMsg.action = convertSIActionStrToEnum((char*)tmpXmlChar);
 
+       XmlFree(tmpXmlChar);
+
        tmpXmlChar = xmlNodeListGetString(xmlDoc, indNode->xmlChildrenNode, 1);
 
        if (tmpXmlChar == NULL) {
@@ -1631,6 +1649,8 @@ void Sms3gppWapPushHandler::handleSLMessage(char* pPushBody, int PushBodyLen, bo
 
        strncpy(pushMsg.href, (char*)tmpXmlChar, MAX_WAPPUSH_HREF_LEN-1);
 
+       XmlFree(tmpXmlChar);
+
        tmpXmlChar = xmlGetProp(indNode, (xmlChar*)SMS_PUSH_XML_ACTION_TAG);
        pushMsg.action = convertSLActionStrToEnum((char*)tmpXmlChar);