Fix defects detected by static analysis tool 63/230763/2
authorJi-hoon Lee <dalton.lee@samsung.com>
Tue, 14 Apr 2020 05:25:36 +0000 (14:25 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Tue, 14 Apr 2020 05:23:51 +0000 (05:23 +0000)
Change-Id: I56d36dd519a26f3f04de789a1bd27532549fef6a

inc/service_main.h
src/service_config.cpp
src/service_ipc_dbus_dispatcher.cpp
src/service_plugin.cpp

index a6e0c00..94ee073 100644 (file)
@@ -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;
 
index 223c27b..c3288f3 100644 (file)
@@ -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);
index e6e74a3..183140b 100644 (file)
@@ -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"));
 
index f12323e..eb02cf4 100644 (file)
@@ -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;
        }