diff options
author | InHong Han <inhong1.han@samsung.com> | 2022-07-25 14:29:28 +0900 |
---|---|---|
committer | InHong Han <inhong1.han@samsung.com> | 2022-07-25 17:02:57 +0900 |
commit | f7e29206f63faebdd6be448773dc9de2af8ad57e (patch) | |
tree | 6b05616e142e2371957b6a0663875dc67d0bebd3 | |
parent | 5f417d25c5159ee3fc5bc3d2952a71a65879b38b (diff) | |
download | multi-assistant-service-f7e29206f63faebdd6be448773dc9de2af8ad57e.tar.gz multi-assistant-service-f7e29206f63faebdd6be448773dc9de2af8ad57e.tar.bz2 multi-assistant-service-f7e29206f63faebdd6be448773dc9de2af8ad57e.zip |
Fix issue detected by static analysis tool
Change-Id: I573bfa8478cad77c9f38f4eaa00304ea2d854bfa
-rw-r--r-- | plugins/wakeup-manager/src/wakeup_settings.cpp | 4 | ||||
-rw-r--r-- | src/service_plugin.cpp | 21 |
2 files changed, 18 insertions, 7 deletions
diff --git a/plugins/wakeup-manager/src/wakeup_settings.cpp b/plugins/wakeup-manager/src/wakeup_settings.cpp index be28afe..e501e31 100644 --- a/plugins/wakeup-manager/src/wakeup_settings.cpp +++ b/plugins/wakeup-manager/src/wakeup_settings.cpp @@ -341,6 +341,10 @@ string CWakeupSettings::get_default_assistant_appid() void CWakeupSettings::set_default_assistant_appid(std::string appid) { + if (appid.empty()) { + MWR_LOGE("appid is NULL"); + return; + } if (appid.compare(get_default_assistant_appid()) == 0) { MWR_LOGE("Default assistant appid not changed, ignoring..."); return; diff --git a/src/service_plugin.cpp b/src/service_plugin.cpp index 780390a..706652d 100644 --- a/src/service_plugin.cpp +++ b/src/service_plugin.cpp @@ -39,12 +39,12 @@ static int g_last_wakeup_event_id = 0; typedef struct { int id; - char* wakeup_word; - char* wakeup_appid; - unsigned char* extra_data; - size_t extra_data_length; - char* extra_data_desc; - CServicePlugin* plugin; + char* wakeup_word{nullptr}; + char* wakeup_appid{nullptr}; + unsigned char* extra_data{nullptr}; + size_t extra_data_length{0}; + char* extra_data_desc{nullptr}; + CServicePlugin* plugin{nullptr}; } AsyncParam; bool CServicePlugin::is_ui_panel_enabled() @@ -209,7 +209,11 @@ static void process_wakeup_event_by_word_timer(void* data) param->id = id; param->wakeup_word = strdup(wakeup_word.c_str()); param->wakeup_appid = strdup(appid); - param->extra_data = extra_data; + if (extra_data && extra_data_length > 0) { + param->extra_data = (unsigned char*)malloc(extra_data_length); + if (param->extra_data) + memcpy(param->extra_data, extra_data, extra_data_length); + } param->extra_data_length = extra_data_length; param->extra_data_desc = strdup(extra_data_desc.c_str()); param->plugin = plugin; @@ -217,6 +221,9 @@ static void process_wakeup_event_by_word_timer(void* data) } } + free(extra_data); + extra_data = nullptr; + MAS_LOGI("END"); return; } |