From 4c58d5a3f651b2fc83bb68b4a15d1fdeaf1090e5 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Tue, 14 Apr 2020 14:25:36 +0900 Subject: [PATCH] Fix defects detected by static analysis tool Change-Id: I56d36dd519a26f3f04de789a1bd27532549fef6a --- inc/service_main.h | 10 +-- src/service_config.cpp | 2 +- src/service_ipc_dbus_dispatcher.cpp | 126 ++++++++++++++++++++++++------------ src/service_plugin.cpp | 10 ++- 4 files changed, 98 insertions(+), 50 deletions(-) diff --git a/inc/service_main.h b/inc/service_main.h index a6e0c00..94ee073 100644 --- a/inc/service_main.h +++ b/inc/service_main.h @@ -165,17 +165,17 @@ private: std::string mCurrentLanguage{"en_US"}; typedef struct { - bool used; + bool used{false}; char appid[MAX_APPID_LEN]; char wakeup_word[MAX_WAKEUP_WORDS_NUM][MAX_WAKEUP_WORD_LEN]; char wakeup_language[MAX_WAKEUP_WORDS_NUM][MAX_SUPPORTED_LANGUAGE_LEN]; char wakeup_engine[MAX_APPID_LEN]; char supported_language[MAX_SUPPORTED_LANGUAGES_NUM][MAX_SUPPORTED_LANGUAGE_LEN]; - bool custom_ui_option; - VOICE_KEY_SUPPORT_MODE voice_key_support_mode; - float voice_key_tap_duration; + bool custom_ui_option{false}; + VOICE_KEY_SUPPORT_MODE voice_key_support_mode{VOICE_KEY_SUPPORT_MODE_PUSH_TO_TALK}; + float voice_key_tap_duration{0.0f}; - ma_preprocessing_allow_mode_e preprocessing_allow_mode; + ma_preprocessing_allow_mode_e preprocessing_allow_mode{MA_PREPROCESSING_ALLOW_NONE}; char preprocessing_allow_appid[MAX_APPID_LEN]; } ma_client_info; diff --git a/src/service_config.cpp b/src/service_config.cpp index 223c27b..c3288f3 100644 --- a/src/service_config.cpp +++ b/src/service_config.cpp @@ -272,7 +272,7 @@ int CServiceConfig::remove_custom_wake_word(const char* wake_word, const char* l wakeup_word_storage[shift][MAX_WAKEUP_WORD_LEN - 1] = '\0'; strncpy(wakeup_language_storage[shift], wakeup_language_storage[shift + 1], MAX_SUPPORTED_LANGUAGE_LEN); - wakeup_word_storage[shift][MAX_SUPPORTED_LANGUAGE_LEN - 1] = '\0'; + wakeup_language_storage[shift][MAX_SUPPORTED_LANGUAGE_LEN - 1] = '\0'; } memset(wakeup_word_storage[MAX_WAKEUP_WORDS_NUM - 1], 0x00, sizeof(char) * MAX_WAKEUP_WORD_LEN); diff --git a/src/service_ipc_dbus_dispatcher.cpp b/src/service_ipc_dbus_dispatcher.cpp index e6e74a3..183140b 100644 --- a/src/service_ipc_dbus_dispatcher.cpp +++ b/src/service_ipc_dbus_dispatcher.cpp @@ -57,9 +57,11 @@ int CServiceIpcDbusDispatcher::on_initialize(DBusConnection* conn, DBusMessage* int pid = -1; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS INITIALIZE"); @@ -113,9 +115,11 @@ int CServiceIpcDbusDispatcher::on_deinitialize(DBusConnection* conn, DBusMessage int pid = -1; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS DEINITIALIZE"); @@ -170,9 +174,11 @@ int CServiceIpcDbusDispatcher::on_get_audio_format(DBusConnection* conn, DBusMes int rate, channel, audio_type; int ret; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS GET AUDIO FORMAT"); @@ -229,9 +235,11 @@ int CServiceIpcDbusDispatcher::on_get_audio_source_type(DBusConnection* conn, DB std::string type; int ret; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS GET AUDIO SOURCE TYPE"); @@ -296,11 +304,13 @@ int CServiceIpcDbusDispatcher::on_send_asr_result(DBusConnection* conn, DBusMess char *asr_result; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &event, DBUS_TYPE_STRING, &asr_result, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SEND ASR RESULT"); @@ -360,12 +370,14 @@ int CServiceIpcDbusDispatcher::on_send_result(DBusConnection* conn, DBusMessage* char* result_json; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_STRING, &display_text, DBUS_TYPE_STRING, &utterance_text, DBUS_TYPE_STRING, &result_json, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SEND RESULT"); @@ -425,10 +437,12 @@ int CServiceIpcDbusDispatcher::on_send_recognition_result(DBusConnection* conn, int result; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &result, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SEND RECOGNITION RESULT"); @@ -461,10 +475,12 @@ int CServiceIpcDbusDispatcher::on_start_streaming_audio_data(DBusConnection* con int type; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &type, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SEND START STREAMING"); @@ -497,10 +513,12 @@ int CServiceIpcDbusDispatcher::on_stop_streaming_audio_data(DBusConnection* conn int type; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &type, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SEND STOP STREAMING"); @@ -533,10 +551,12 @@ int CServiceIpcDbusDispatcher::on_update_voice_feedback_state(DBusConnection* co int state; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &state, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SEND UPDATE VOICE FEEDBACK"); @@ -569,10 +589,12 @@ int CServiceIpcDbusDispatcher::on_send_assistant_specific_command(DBusConnection int ret = 0; char* command; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_STRING, &command, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SEND ASSISTANT SPECIFIC COMMAND"); @@ -606,10 +628,12 @@ int CServiceIpcDbusDispatcher::on_set_background_volume(DBusConnection* conn, DB int ret = 0; double ratio; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_DOUBLE, &ratio, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SET BACKGROUND VOLUME"); @@ -643,11 +667,13 @@ int CServiceIpcDbusDispatcher::on_set_preprocessing_allow_mode(DBusConnection* c int mode; char* app_id; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &mode, DBUS_TYPE_STRING, &app_id, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SET PREPROCESSING ALLOW MODE"); @@ -682,10 +708,12 @@ int CServiceIpcDbusDispatcher::on_send_preprocessing_result(DBusConnection* conn int ret = 0; int result; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &result, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SEND PREPROCESSING RESULT"); @@ -718,10 +746,12 @@ int CServiceIpcDbusDispatcher::on_set_wake_word_audio_require_flag(DBusConnectio int ret = 0; int require; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &require, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SET WAKE WORD AUDIO REQUIRE FLAG"); @@ -754,10 +784,12 @@ int CServiceIpcDbusDispatcher::on_set_assistant_language(DBusConnection* conn, D int ret = 0; char* language; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_STRING, &language, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS SET ASSISTANT LANGUAGE"); @@ -792,11 +824,13 @@ int CServiceIpcDbusDispatcher::on_add_wake_word(DBusConnection* conn, DBusMessag char* wake_word; char* language; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_STRING, &wake_word, DBUS_TYPE_STRING, &language, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS ADD WAKE WORD"); @@ -832,11 +866,13 @@ int CServiceIpcDbusDispatcher::on_remove_wake_word(DBusConnection* conn, DBusMes char* wake_word; char* language; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_STRING, &wake_word, DBUS_TYPE_STRING, &language, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS REMOVE WAKE WORD"); @@ -870,9 +906,11 @@ int CServiceIpcDbusDispatcher::on_ui_initialize(DBusConnection* conn, DBusMessag int pid = -1; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS UI INITIALIZE"); @@ -926,9 +964,11 @@ int CServiceIpcDbusDispatcher::on_ui_deinitialize(DBusConnection* conn, DBusMess int pid = -1; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS UI DEINITIALIZE"); @@ -982,9 +1022,11 @@ int CServiceIpcDbusDispatcher::on_ui_change_assistant(DBusConnection* conn, DBus char *app_id; int ret = 0; - dbus_message_get_args(msg, &err, + if (FALSE == dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &app_id, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + MAS_LOGE("[ERROR] Failed retrieving arguments"); + } MAS_LOGD("[DEBUG] MAS UI CHANGE ASSISTANT : %s", (app_id ? app_id : "NULL")); diff --git a/src/service_plugin.cpp b/src/service_plugin.cpp index f12323e..eb02cf4 100644 --- a/src/service_plugin.cpp +++ b/src/service_plugin.cpp @@ -501,9 +501,15 @@ int CServicePlugin::initialize(void) snprintf(filepath, 512, "%s/%s", default_engine_path, MA_DEFAULT_WAKEUP_MANAGER_FILENAME); char *error; - mPluginHandle = NULL; + mPluginHandle = nullptr; mPluginHandle = dlopen(filepath, RTLD_LAZY); - if (NULL != (error = dlerror())) { + if (nullptr != (error = dlerror())) { + MAS_LOGE("[ERROR] Fail to dlopen(%s), error(%s)", filepath, error); + if (mPluginHandle) dlclose(mPluginHandle); + mPluginHandle = nullptr; + return -1; //MAS_ERROR_OPERATION_FAILED; + } + if (nullptr == mPluginHandle) { MAS_LOGE("[ERROR] Fail to dlopen(%s), error(%s)", filepath, error); return -1; //MAS_ERROR_OPERATION_FAILED; } -- 2.7.4