From 036ba2a9c45912f4ec377b927098dac16c8341c4 Mon Sep 17 00:00:00 2001 From: "jiyong.min" Date: Wed, 19 Aug 2020 15:44:20 +0900 Subject: [PATCH] Modify to prevent reuse of values from released handles Change-Id: I38d37136f45e50d7c5557dea55d097a1d67ad91e --- src/media_controller_client.c | 22 +++++++++++----------- src/media_controller_server.c | 28 +++++++++++++++------------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/src/media_controller_client.c b/src/media_controller_client.c index f9697e3..e24d67b 100644 --- a/src/media_controller_client.c +++ b/src/media_controller_client.c @@ -470,26 +470,26 @@ static int __mc_client_destroy(media_controller_client_s *mc_client) { int ret = MEDIA_CONTROLLER_ERROR_NONE; - mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); + mc_retvm_if(!mc_client, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid mc_client"); - /*Send Disconnection Msg to Server*/ ret = _mc_ipc_send_message_to_server(MC_MSG_SERVER_DISCONNECTION, MC_PRIV_TYPE_CLIENT, mc_client->client_name); if (ret != MEDIA_CONTROLLER_ERROR_NONE) mc_error("Failed to _mc_ipc_send_message_to_server [%d]", ret); - if (mc_client->dconn) { - ret = _mc_ipc_unref_dbus_connection(mc_client->dconn, &mc_client->dref_count); - if (ret != MEDIA_CONTROLLER_ERROR_NONE) - mc_error("fail to _mc_ipc_unref_dbus_connection"); - } + ret = _mc_ipc_unref_dbus_connection(mc_client->dconn, &mc_client->dref_count); + if (ret != MEDIA_CONTROLLER_ERROR_NONE) + mc_error("fail to _mc_ipc_unref_dbus_connection"); + mc_client->dconn = NULL; - if (mc_client->db_handle) - mc_db_disconnect(mc_client->db_handle); + mc_db_disconnect(mc_client->db_handle); + mc_client->db_handle = NULL; - if (mc_client->listeners != NULL) - g_list_free(mc_client->listeners); + g_list_free(mc_client->listeners); + mc_client->listeners = NULL; g_free(mc_client->client_name); + mc_client->client_name = NULL; + g_free(mc_client); return ret; diff --git a/src/media_controller_server.c b/src/media_controller_server.c index 23cd1e8..d6840cc 100644 --- a/src/media_controller_server.c +++ b/src/media_controller_server.c @@ -123,30 +123,32 @@ static int __mc_server_destoy(media_controller_server_s *mc_server) { int ret = MEDIA_CONTROLLER_ERROR_NONE; - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); + mc_retvm_if(!mc_server, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid mc_server"); - /*Send Disconnection Msg to Server*/ ret = _mc_ipc_send_message_to_server(MC_MSG_SERVER_DISCONNECTION, MC_PRIV_TYPE_SERVER, mc_server->server_name); if (ret != MEDIA_CONTROLLER_ERROR_NONE) mc_error("Failed to _mc_ipc_send_message_to_server [%d]", ret); - if (mc_server->dconn) { - ret = _mc_ipc_unref_dbus_connection(mc_server->dconn, &mc_server->dref_count); - if (ret != MEDIA_CONTROLLER_ERROR_NONE) - mc_error("fail to _mc_ipc_unref_dbus_connection"); - } + ret = _mc_ipc_unref_dbus_connection(mc_server->dconn, &mc_server->dref_count); + if (ret != MEDIA_CONTROLLER_ERROR_NONE) + mc_error("fail to _mc_ipc_unref_dbus_connection"); + mc_server->dconn = NULL; - if (mc_server->db_handle) - mc_db_disconnect(mc_server->db_handle); + mc_db_disconnect(mc_server->db_handle); + mc_server->db_handle = NULL; - if (mc_server->listeners != NULL) - g_list_free(mc_server->listeners); - - g_free(mc_server->server_name); + g_list_free(mc_server->listeners); + mc_server->listeners = NULL; mc_metadata_destroy(mc_server->metadata); + mc_server->metadata = NULL; g_free(mc_server->playback.index); + mc_server->playback.index = NULL; + + g_free(mc_server->server_name); + mc_server->server_name = NULL; + g_free(mc_server); return ret; -- 2.7.4