summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInHong Han <inhong1.han@samsung.com>2022-07-25 14:29:28 +0900
committerInHong Han <inhong1.han@samsung.com>2022-07-25 17:02:57 +0900
commitf7e29206f63faebdd6be448773dc9de2af8ad57e (patch)
tree6b05616e142e2371957b6a0663875dc67d0bebd3
parent5f417d25c5159ee3fc5bc3d2952a71a65879b38b (diff)
downloadmulti-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.cpp4
-rw-r--r--src/service_plugin.cpp21
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;
}