From d7e21726c2e9f1a138682dda2815c80bf9e276b3 Mon Sep 17 00:00:00 2001 From: Piotr Kosko Date: Wed, 13 Jul 2016 10:34:05 +0200 Subject: [PATCH] [Messaging] Fixed SVACE issues [Bug] Fixed issues 107586, 107587 [Verification] Code compiles without errors. Change-Id: I9ef9bea7b189174726dfc9d993df5234c88122a8 Signed-off-by: Piotr Kosko --- src/messaging/email_manager.cc | 2 +- src/messaging/message.cc | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/messaging/email_manager.cc b/src/messaging/email_manager.cc index cd275dbe..6fa77de9 100755 --- a/src/messaging/email_manager.cc +++ b/src/messaging/email_manager.cc @@ -1433,7 +1433,7 @@ std::string EmailManager::getMessageStatus(int id) { MessageStatus status = MessageStatus::STATUS_UNDEFINED; int ret = email_get_mail_data(id, &mail); - if (EMAIL_ERROR_NONE != ret ) { + if (EMAIL_ERROR_NONE != ret || !mail) { LoggerD("Failed to get data %d (%s)", ret, get_error_message(ret)); return ""; } diff --git a/src/messaging/message.cc b/src/messaging/message.cc index 196bf078..3f77486d 100755 --- a/src/messaging/message.cc +++ b/src/messaging/message.cc @@ -496,7 +496,10 @@ PlatformResult Message::convertPlatformEmail(std::shared_ptr message, } if(message->is_id_set()) { - email_get_mail_data(message->getId(), &mail_data); + int ret = email_get_mail_data(message->getId(), &mail_data); + if (EMAIL_ERROR_NONE != ret || !mail_data) { + return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Failed to get mail data."); + } } else { mail_data = (email_mail_data_t*)malloc(sizeof(email_mail_data_t)); if (!mail_data) { @@ -505,7 +508,7 @@ PlatformResult Message::convertPlatformEmail(std::shared_ptr message, memset(mail_data, 0x00, sizeof(email_mail_data_t)); } - std::unique_ptr mail_data_ptr( + std::unique_ptr mail_data_ptr( mail_data, [](email_mail_data_t* mail) {email_free_mail_data(&mail, 1);}); if(!message->getFrom().empty()) { -- 2.34.1