From: Piotr Kosko/Native/Web API (PLT) /SRPOL/Engineer/Samsung Electronics
Date: Tue, 18 Feb 2020 06:41:52 +0000 (+0100)
Subject: [messaging][bluetooth] Fixing Coverity issues
X-Git-Tag: submit/tizen/20200218.095600~1
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0e8977f2fe83367902838df1f346e3246a38a720;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git
[messaging][bluetooth] Fixing Coverity issues
Fixing below issues:
- messaging: 1098090, 1102306
- bluetooth: 1094938
[Verification]
bluetooth auto TCT: 100%
messaging sms TCT: 100%
messaging mms TCT: 100%
Change-Id: I12dc9d5cdc3ddd1e6c5c71f8fb92942bd1c63d96
---
diff --git a/src/bluetooth/bluetooth_adapter.cc b/src/bluetooth/bluetooth_adapter.cc
index 0da34d52..4e7456d3 100644
--- a/src/bluetooth/bluetooth_adapter.cc
+++ b/src/bluetooth/bluetooth_adapter.cc
@@ -1710,10 +1710,10 @@ void BluetoothAdapter::RemoveSocket(int socket) {
LoggerW("Unknown connected socket: %d", socket);
return;
}
-
+ int id = *it;
connected_sockets_.erase(it);
- InvokeSocketOnCloseEvent(*it);
+ InvokeSocketOnCloseEvent(id);
}
void BluetoothAdapter::StoreSocketData(bt_socket_received_data_s* data) {
diff --git a/src/messaging/messaging_database_manager.cc b/src/messaging/messaging_database_manager.cc
index dbdf03e4..9efa3b3b 100644
--- a/src/messaging/messaging_database_manager.cc
+++ b/src/messaging/messaging_database_manager.cc
@@ -226,6 +226,8 @@ msg_error_t MessagingDatabaseManager::getTable(std::string sqlQuery, char*** res
if (SQLITE_OK != err) {
LoggerE("Getting table fail [%d] error_msg:%s querry was:%s", err, error_msg, sqlQuery.c_str());
+ sqlite3_free(error_msg);
+ error_msg = NULL;
freeTable(results);
return MSG_ERR_DB_GETTABLE;
}
diff --git a/src/messaging/short_message_manager.cc b/src/messaging/short_message_manager.cc
index 069a6863..784b4333 100644
--- a/src/messaging/short_message_manager.cc
+++ b/src/messaging/short_message_manager.cc
@@ -123,13 +123,18 @@ PlatformResult ShortMsgManager::addDraftMessagePlatform(std::shared_ptr
if (NULL == platform_msg) {
return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Cannot prepare platform message");
}
+ // releases platform_msg
+ std::unique_ptr::type, decltype(&msg_release_struct)>
+ platform_msg_ptr(&platform_msg, &msg_release_struct);
msg_struct_t send_opt = msg_create_struct(MSG_STRUCT_SENDOPT);
+ // releases send_opt
+ std::unique_ptr::type, decltype(&msg_release_struct)>
+ send_opt_ptr(&send_opt, &msg_release_struct);
+
msg_set_bool_value(send_opt, MSG_SEND_OPT_SETTING_BOOL, false);
const int msg_id = msg_add_message(m_msg_handle, platform_msg, send_opt);
if (msg_id < MSG_SUCCESS) {
- msg_release_struct(&send_opt);
- msg_release_struct(&platform_msg);
return LogAndCreateResult(
ErrorCode::UNKNOWN_ERR, "Cannot add message to draft",
("Message(%p): Failed to add draft, error: %d", message.get(), msg_id));
@@ -141,6 +146,9 @@ PlatformResult ShortMsgManager::addDraftMessagePlatform(std::shared_ptr
message->setMessageStatus(MessageStatus::STATUS_DRAFT);
msg_struct_t msg_conv = msg_create_struct(MSG_STRUCT_CONV_INFO);
+ // releases msg_conv
+ std::unique_ptr::type, decltype(&msg_release_struct)>
+ msg_conv_ptr(&msg_conv, &msg_release_struct);
msg_error_t err = msg_get_conversation(m_msg_handle, msg_id, msg_conv);
if (MSG_SUCCESS == err) {
int conversationId = 0;
@@ -170,15 +178,6 @@ PlatformResult ShortMsgManager::addDraftMessagePlatform(std::shared_ptr
const int inResponseTo = msgInfo->getInResponseTo();
message->setInResponseTo(inResponseTo);
- if (msg_release_struct(&platform_msg) != MSG_SUCCESS) {
- LoggerW("Platform message is already destroyed");
- }
- if (msg_release_struct(&msg_conv) != MSG_SUCCESS) {
- LoggerW("Platform message is already destroyed");
- }
- if (msg_release_struct(&send_opt) != MSG_SUCCESS) {
- LoggerW("Platform message is already destroyed");
- }
delete msgInfo;
return PlatformResult(ErrorCode::NO_ERROR);
}