From: Lukasz Bardeli Date: Mon, 2 May 2016 13:02:40 +0000 (+0200) Subject: [Messaging] fix for memory leak X-Git-Tag: submit/tizen/20160503.235142^2~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6a1e4b4a6c140d7abde7934023894ba0a4251cf3;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Messaging] fix for memory leak Change-Id: Id05e8dda11d5840bf5470f1711fca96183e27f23 Signed-off-by: Lukasz Bardeli --- diff --git a/src/messaging/email_manager.cc b/src/messaging/email_manager.cc index 2e15dd17..cd275dbe 100755 --- a/src/messaging/email_manager.cc +++ b/src/messaging/email_manager.cc @@ -269,17 +269,33 @@ PlatformResult EmailManager::addMessagePlatform(int account_id, if (message->getHasAttachment()){ ret = Message::addEmailAttachments(message); - if (ret.IsError()) return ret; + if (ret.IsError()) { + int ntv_ret = email_free_mail_data(&mail_data,1); + if(EMAIL_ERROR_NONE != ntv_ret) { + LoggerE("Failed to free mail data memory: %d (%s)", ntv_ret, get_error_message(ntv_ret)); + } + return ret; + } } err = email_get_mail_data(message->getId(), &mail_data_final); if(EMAIL_ERROR_NONE != err) { - return LogAndCreateResult( - ErrorCode::UNKNOWN_ERR, "Couldn't retrieve added mail data", - ("email_get_mail_data error: %d (%s)", err, get_error_message(err))); + int ntv_ret = email_free_mail_data(&mail_data,1); + if(EMAIL_ERROR_NONE != ntv_ret) { + LoggerE("Failed to free mail data memory: %d (%s)", ntv_ret, get_error_message(ntv_ret)); + } + return LogAndCreateResult( + ErrorCode::UNKNOWN_ERR, "Couldn't retrieve added mail data", + ("email_get_mail_data error: %d (%s)", err, get_error_message(err))); } ret = message->updateEmailMessage(*mail_data_final); - if (ret.IsError()) return ret; + if (ret.IsError()) { + int ntv_ret = email_free_mail_data(&mail_data,1); + if(EMAIL_ERROR_NONE != ntv_ret) { + LoggerE("Failed to free mail data memory: %d (%s)", ntv_ret, get_error_message(ntv_ret)); + } + return ret; + } err = email_free_mail_data(&mail_data_final,1); if(EMAIL_ERROR_NONE != err) {