From: Wonnam Jang Date: Thu, 9 Feb 2017 00:53:35 +0000 (+0900) Subject: change strdup to array X-Git-Tag: accepted/tizen/3.0/common/20170224.130006~4 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Ftts.git;a=commitdiff_plain;h=0a47e04d7983a1d8e3eb961c9f29cc367574fcc7 change strdup to array Change-Id: I776352564c8a47283201036c528cb93c360a7add Signed-off-by: Wonnam Jang --- diff --git a/client/tts.c b/client/tts.c index 3ea3717..039512c 100644 --- a/client/tts.c +++ b/client/tts.c @@ -273,12 +273,20 @@ int tts_destroy(tts_h tts) int ret = -1; int count = 0; + int screen_reader = -1; /* check state */ switch (client->current_state) { case TTS_STATE_PAUSED: case TTS_STATE_PLAYING: case TTS_STATE_READY: + ret = vconf_get_bool(TTS_ACCESSIBILITY_KEY, &screen_reader); + if (0 != ret) { + SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to get screen reader"); + } else { + SLOG(LOG_INFO, tts_tag(), "[INFO] Success to get screen reader(%d), g_screen_reader(%s), client->mode(%d)", screen_reader, (true == g_screen_reader) ? "True" : "False", client->mode); + g_screen_reader = (bool)screen_reader; + } if (!(false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode)) { while (0 != ret) { ret = tts_dbus_request_finalize(client->uid); @@ -670,6 +678,16 @@ int tts_unprepare(tts_h tts) int ret = -1; int count = 0; + int screen_reader = -1; + + ret = vconf_get_bool(TTS_ACCESSIBILITY_KEY, &screen_reader); + if (0 != ret) { + SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to get screen reader"); + } else { + SLOG(LOG_INFO, tts_tag(), "[INFO] Success to get screen reader(%d), g_screen_reader(%s), client->mode(%d)", screen_reader, (true == g_screen_reader) ? "True" : "False", client->mode); + g_screen_reader = (bool)screen_reader; + } + if (!(false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode)) { while (0 != ret) { ret = tts_dbus_request_finalize(client->uid); diff --git a/common/tts_config_mgr.c b/common/tts_config_mgr.c old mode 100755 new mode 100644 index 9faa9ed..e05446d --- a/common/tts_config_mgr.c +++ b/common/tts_config_mgr.c @@ -43,6 +43,9 @@ static GSList* g_engine_list = NULL; static GSList* g_config_client_list = NULL; static tts_config_s* g_config_info = NULL; +extern char g_engine_id[128]; +extern char g_setting[128]; +extern char g_language[128]; static Ecore_Fd_Handler* g_config_fd_handler_noti = NULL; static int g_config_fd_noti; @@ -109,23 +112,14 @@ int __tts_config_mgr_check_engine_is_valid(const char* engine_id) } if (NULL != engine_info->uuid) { - if (NULL != g_config_info->engine_id) { - free(g_config_info->engine_id); - g_config_info->engine_id = NULL; - } - g_config_info->engine_id = strdup(engine_info->uuid); + memset(g_engine_id, '\0', sizeof(g_engine_id)); + g_config_info->engine_id = g_engine_id; + strncpy(g_config_info->engine_id, engine_info->uuid, sizeof(g_engine_id) - 1); } if (NULL != engine_info->setting) { - if (NULL != g_config_info->setting) { - free(g_config_info->setting); - g_config_info->setting = NULL; - } - g_config_info->setting = strdup(engine_info->setting); - } - - if (NULL == g_config_info->engine_id || NULL == g_config_info->setting) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to strdup engine_info"); - return -1; + memset(g_setting, '\0', sizeof(g_setting)); + g_config_info->setting = g_setting; + strncpy(g_config_info->setting, engine_info->setting, sizeof(g_setting) - 1); } SLOG(LOG_DEBUG, tts_tag(), "Default engine is changed : %s", g_config_info->engine_id); @@ -143,19 +137,16 @@ int __tts_config_mgr_check_engine_is_valid(const char* engine_id) voice = iter_voice->data; if (NULL != voice) { - if (NULL != voice->language && NULL != g_config_info->language) { + if (NULL != voice->language) { if (0 == strcmp(voice->language, g_config_info->language)) { if (voice->type == g_config_info->type) { /* language is valid */ is_valid_voice = true; - free(g_config_info->language); - g_config_info->language = NULL; - g_config_info->language = strdup(voice->language); - if (NULL == g_config_info->language) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to strdup language"); - return TTS_CONFIG_ERROR_OPERATION_FAILED; - } + memset(g_language, '\0', sizeof(g_language)); + g_config_info->language = g_language; + strncpy(g_config_info->language, voice->language, sizeof(g_language) - 1); + g_config_info->type = voice->type; SLOG(LOG_DEBUG, tts_tag(), "Default voice is changed : lang(%s) type(%d)", voice->language, voice->type); @@ -170,30 +161,24 @@ int __tts_config_mgr_check_engine_is_valid(const char* engine_id) if (false == is_valid_voice) { /* Select first voice as default */ - if (NULL != g_config_info->language) { - free(g_config_info->language); - g_config_info->language = NULL; - - iter_voice = g_slist_nth(engine_info->voices, 0); - if (NULL == iter_voice) { - SLOG(LOG_ERROR, tts_tag(), "Fail to get voice list"); - return TTS_CONFIG_ERROR_OPERATION_FAILED; - } - voice = iter_voice->data; + memset(g_language, '\0', sizeof(g_language)); + g_config_info->language = g_language; - if (NULL == voice || NULL == voice->language) { - SLOG(LOG_ERROR, tts_tag(), "Fail to get voice info from list"); - return TTS_CONFIG_ERROR_OPERATION_FAILED; - } + iter_voice = g_slist_nth(engine_info->voices, 0); + if (NULL == iter_voice) { + SLOG(LOG_ERROR, tts_tag(), "Fail to get voice list"); + return TTS_CONFIG_ERROR_OPERATION_FAILED; + } + voice = iter_voice->data; - g_config_info->language = strdup(voice->language); - if (NULL == g_config_info->language) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to strdup language"); - return TTS_CONFIG_ERROR_OPERATION_FAILED; - } - g_config_info->type = voice->type; - SLOG(LOG_DEBUG, tts_tag(), "Default voice is changed : lang(%s) type(%d)", voice->language, voice->type); + if (NULL == voice || NULL == voice->language) { + SLOG(LOG_ERROR, tts_tag(), "Fail to get voice info from list"); + return TTS_CONFIG_ERROR_OPERATION_FAILED; } + strncpy(g_config_info->language, voice->language, sizeof(g_language) - 1); + + g_config_info->type = voice->type; + SLOG(LOG_DEBUG, tts_tag(), "Default voice is changed : lang(%s) type(%d)", voice->language, voice->type); } if (0 != tts_parser_set_engine(g_config_info->engine_id, g_config_info->setting, @@ -378,28 +363,14 @@ Eina_Bool tts_config_mgr_inotify_event_cb(void* data, Ecore_Fd_Handler *fd_handl /* engine changed */ if (NULL != engine || NULL != setting) { if (NULL != engine) { - if (NULL != g_config_info->engine_id) { - free(g_config_info->engine_id); - g_config_info->engine_id = NULL; - } - - g_config_info->engine_id = strdup(engine); - if (NULL == g_config_info->engine_id) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to strdup engine_id"); - return ECORE_CALLBACK_DONE; - } + memset(g_engine_id, '\0', sizeof(g_engine_id)); + g_config_info->engine_id = g_engine_id; + strncpy(g_config_info->engine_id, engine, sizeof(g_engine_id) - 1); } if (NULL != setting) { - if (NULL != g_config_info->setting) { - free(g_config_info->setting); - g_config_info->setting = NULL; - } - - g_config_info->setting = strdup(setting); - if (NULL == g_config_info->setting) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to strdup setting"); - return ECORE_CALLBACK_DONE; - } + memset(g_setting, '\0', sizeof(g_setting)); + g_config_info->setting = g_setting; + strncpy(g_config_info->setting, setting, sizeof(g_setting) - 1); } SECURE_SLOG(LOG_DEBUG, tts_tag(), "Engine change(%s)", g_config_info->engine_id); @@ -435,15 +406,9 @@ Eina_Bool tts_config_mgr_inotify_event_cb(void* data, Ecore_Fd_Handler *fd_handl before_type = g_config_info->type; if (NULL != lang) { - if (NULL != g_config_info->language) { - free(g_config_info->language); - g_config_info->language = NULL; - } - - g_config_info->language = strdup(lang); - if (NULL == g_config_info->language) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to strdup lang"); - } + memset(g_language, '\0', sizeof(g_language)); + g_config_info->language = g_language; + strncpy(g_config_info->language, lang, sizeof(g_language) - 1); } if (-1 != voice_type) { g_config_info->type = voice_type; @@ -618,13 +583,9 @@ int __tts_config_set_auto_language() before_lang = strdup(g_config_info->language); before_type = g_config_info->type; - free(g_config_info->language); - g_config_info->language = NULL; - g_config_info->language = strdup(temp_lang); - if (NULL == g_config_info->language) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to strdup temp_lang"); - return -1; - } + memset(g_language, '\0', sizeof(g_language)); + g_config_info->language = g_language; + strncpy(g_config_info->language, temp_lang, sizeof(g_language) - 1); SECURE_SLOG(LOG_DEBUG, tts_tag(), "[Config] Default voice : lang(%s) type(%d)", g_config_info->language, g_config_info->type); @@ -694,15 +655,10 @@ int __tts_config_set_auto_language() iter = g_slist_next(iter); } - if (NULL != g_config_info->language) { - free(g_config_info->language); - g_config_info->language = NULL; - g_config_info->language = strdup(tmp_language); - if (NULL == g_config_info->language) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to strdup tmp_language"); - return -1; - } - } + + memset(g_language, '\0', sizeof(g_language)); + g_config_info->language = g_language; + strncpy(g_config_info->language, tmp_language, sizeof(g_language) - 1); g_config_info->type = tmp_type; @@ -1196,15 +1152,9 @@ int tts_config_mgr_initialize(int uid) } if (NULL != tmp_language) { - if (NULL != g_config_info->language) { - free(g_config_info->language); - g_config_info->language = NULL; - g_config_info->language = strdup(tmp_language); - if (NULL == g_config_info->language) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to strdup tmp_language"); - return TTS_CONFIG_ERROR_OPERATION_FAILED; - } - } + memset(g_language, '\0', sizeof(g_language)); + g_config_info->language = g_language; + strncpy(g_config_info->language, tmp_language, sizeof(g_language) - 1); g_config_info->type = tmp_type; @@ -1532,10 +1482,8 @@ int tts_config_mgr_set_engine(const char* engine) return TTS_CONFIG_ERROR_INVALID_PARAMETER; /* Check current engine id with new engine id */ - if (NULL != g_config_info->engine_id) { - if (0 == strcmp(g_config_info->engine_id, engine)) - return 0; - } + if (0 == strcmp(g_config_info->engine_id, engine)) + return 0; if (0 >= g_slist_length(g_engine_list)) { SLOG(LOG_ERROR, tts_tag(), "[ERROR] There is no engine!!"); @@ -1572,19 +1520,14 @@ int tts_config_mgr_set_engine(const char* engine) continue; } - if (NULL != g_config_info->engine_id) { - free(g_config_info->engine_id); - g_config_info->engine_id = NULL; - } - - g_config_info->engine_id = strdup(engine); + memset(g_engine_id, '\0', sizeof(g_engine_id)); + g_config_info->engine_id = g_engine_id; + strncpy(g_config_info->engine_id, engine, sizeof(g_engine_id) - 1); if (NULL != engine_info->setting) { - if (NULL != g_config_info->setting) { - free(g_config_info->setting); - g_config_info->setting = NULL; - } - g_config_info->setting = strdup(engine_info->setting); + memset(g_setting, '\0', sizeof(g_setting)); + g_config_info->setting = g_setting; + strncpy(g_config_info->setting, engine_info->setting, sizeof(g_setting) - 1); } /* Engine is valid*/ @@ -1619,18 +1562,17 @@ int tts_config_mgr_set_engine(const char* engine) } if (false == is_valid_voice) { - if (NULL != g_config_info->language) { - free(g_config_info->language); - g_config_info->language = NULL; - - iter_voice = g_slist_nth(engine_info->voices, 0); - if (NULL != iter_voice) { - voice = iter_voice->data; - if (NULL != voice) { - if (NULL != voice->language) - g_config_info->language = strdup(voice->language); - g_config_info->type = voice->type; - } + memset(g_language, '\0', sizeof(g_language)); + g_config_info->language = g_language; + + iter_voice = g_slist_nth(engine_info->voices, 0); + if (NULL != iter_voice) { + voice = iter_voice->data; + if (NULL != voice) { + if (NULL != voice->language) + strncpy(g_config_info->language, voice->language, sizeof(g_language) - 1); + + g_config_info->type = voice->type; } } } @@ -1730,7 +1672,7 @@ int tts_config_mgr_get_voice(char** language, int* type) if (NULL == language || NULL == type) return TTS_CONFIG_ERROR_INVALID_PARAMETER; - if (NULL != g_config_info->language) { + if (0 != strlen(g_config_info->language)) { *language = strdup(g_config_info->language); *type = g_config_info->type; } else { @@ -1759,24 +1701,15 @@ int tts_config_mgr_set_voice(const char* language, int type) } /* Check language is valid */ - if (NULL != g_config_info->language) { - if (0 != tts_parser_set_voice(language, type)) { - SLOG(LOG_ERROR, tts_tag(), "Fail to save default voice"); - return TTS_CONFIG_ERROR_OPERATION_FAILED; - } - free(g_config_info->language); - g_config_info->language = NULL; - g_config_info->language = strdup(language); - if (NULL == g_config_info->language) { - SLOG(LOG_ERROR, tts_tag(), "Fail to strdup language"); - return TTS_CONFIG_ERROR_OPERATION_FAILED; - } - g_config_info->type = type; - - } else { - SLOG(LOG_ERROR, tts_tag(), "language is NULL"); + if (0 != tts_parser_set_voice(language, type)) { + SLOG(LOG_ERROR, tts_tag(), "Fail to save default voice"); return TTS_CONFIG_ERROR_OPERATION_FAILED; } + memset(g_language, '\0', sizeof(g_language)); + g_config_info->language = g_language; + strncpy(g_config_info->language, language, sizeof(g_language) - 1); + + g_config_info->type = type; return 0; } @@ -1995,7 +1928,7 @@ bool tts_config_check_default_voice_is_valid(const char* language, int type) if (NULL == language) return false; - if (NULL == g_config_info->engine_id) { + if (0 == strlen(g_config_info->engine_id)) { SLOG(LOG_ERROR, tts_tag(), "[ERROR] Default engine id is NULL"); return false; } diff --git a/common/tts_config_parser.c b/common/tts_config_parser.c old mode 100755 new mode 100644 index 82f8428..b984103 --- a/common/tts_config_parser.c +++ b/common/tts_config_parser.c @@ -46,6 +46,9 @@ extern char* tts_tag(); static xmlDocPtr g_config_doc = NULL; +char g_engine_id[128] = {0,}; +char g_setting[128] = {0,}; +char g_language[128] = {0,}; int tts_parser_get_engine_info(const char* path, tts_engine_info_s** engine_info) { @@ -392,19 +395,19 @@ int tts_parser_load_config(tts_config_s** config_info) return -1; } - temp->engine_id = NULL; - temp->setting = NULL; - temp->language = NULL; + memset(g_engine_id, '\0', sizeof(g_engine_id)); + memset(g_setting, '\0', sizeof(g_setting)); + memset(g_language, '\0', sizeof(g_language)); + + temp->engine_id = g_engine_id; + temp->setting = g_setting; + temp->language = g_language; while (cur != NULL) { if (0 == xmlStrcmp(cur->name, (const xmlChar *)TTS_TAG_CONFIG_ENGINE_ID)) { key = xmlNodeGetContent(cur); if (NULL != key) { - if (NULL != temp->engine_id) { - free(temp->engine_id); - temp->engine_id = NULL; - } - temp->engine_id = strdup((char*)key); + strncpy(temp->engine_id, (char*)key, sizeof(g_engine_id) - 1); xmlFree(key); key = NULL; } else { @@ -413,11 +416,7 @@ int tts_parser_load_config(tts_config_s** config_info) } else if (0 == xmlStrcmp(cur->name, (const xmlChar *)TTS_TAG_CONFIG_ENGINE_SETTING)) { key = xmlNodeGetContent(cur); if (NULL != key) { - if (NULL != temp->setting) { - free(temp->setting); - temp->setting = NULL; - } - temp->setting = strdup((char*)key); + strncpy(temp->setting, (char*)key, sizeof(g_setting) - 1); xmlFree(key); key = NULL; } else { @@ -462,11 +461,7 @@ int tts_parser_load_config(tts_config_s** config_info) } else if (0 == xmlStrcmp(cur->name, (const xmlChar *)TTS_TAG_CONFIG_LANGUAGE)) { key = xmlNodeGetContent(cur); if (NULL != key) { - if (NULL != temp->language) { - free(temp->language); - temp->language = NULL; - } - temp->language = strdup((char*)key); + strncpy(temp->language, (char*)key, sizeof(g_language) - 1); xmlFree(key); key = NULL; } else { @@ -528,18 +523,6 @@ int tts_parser_unload_config(tts_config_s* config_info) g_config_doc = NULL; } if (NULL != config_info) { - if (NULL != config_info->engine_id) { - free(config_info->engine_id); - config_info->engine_id = NULL; - } - if (NULL != config_info->setting) { - free(config_info->setting); - config_info->setting = NULL; - } - if (NULL != config_info->language) { - free(config_info->language); - config_info->language = NULL; - } free(config_info); config_info = NULL; } diff --git a/engine-parser/src/tts-engine-parser.c b/engine-parser/src/tts-engine-parser.c index b5d82d2..deafadc 100644 --- a/engine-parser/src/tts-engine-parser.c +++ b/engine-parser/src/tts-engine-parser.c @@ -156,8 +156,10 @@ static int __save_engine_info_xml(const char *pkgid, gchar *ut, uid_t uid, gid_t /* Make directories */ + int fd = -1; // if (0 != access(dir_config_base, F_OK)) { - if (-1 == open(dir_config_base, O_DIRECTORY)) { + fd = open(dir_config_base, O_DIRECTORY); + if (-1 == fd) { LOGE("[INFO] No directory : %s, errno : %d", dir_config_base, errno); if (0 != mkdir(dir_config_base, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) { LOGE("[ERROR] Fail to make directory : %s, errno : %d", dir_config_base, errno); @@ -174,10 +176,13 @@ static int __save_engine_info_xml(const char *pkgid, gchar *ut, uid_t uid, gid_t LOGD("[DEBUG] Success to change user and group"); } } + } else { + close(fd); } // if (0 != access(dir_home, F_OK)) { - if (-1 == open(dir_home, O_DIRECTORY)) { + fd = open(dir_home, O_DIRECTORY); + if (-1 == fd) { LOGE("[INFO] No directory : %s, errno : %d", dir_home, errno); if (0 != mkdir(dir_home, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) { LOGE("[ERROR] Fail to make directory : %s, errno : %d", dir_home, errno); @@ -194,10 +199,13 @@ static int __save_engine_info_xml(const char *pkgid, gchar *ut, uid_t uid, gid_t LOGD("[DEBUG] Success to change user and group"); } } + } else { + close(fd); } // if (0 != access(dir_engine_base, F_OK)) { - if (-1 == open(dir_engine_base, O_DIRECTORY)) { + fd = open(dir_engine_base, O_DIRECTORY); + if (-1 == fd) { LOGE("[INFO] No directory : %s, errno : %d", dir_engine_base, errno); if (0 != mkdir(dir_engine_base, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) { LOGE("[ERROR] Fail to make directory : %s, errno : %d", dir_engine_base, errno); @@ -214,10 +222,13 @@ static int __save_engine_info_xml(const char *pkgid, gchar *ut, uid_t uid, gid_t LOGD("[DEBUG] Success to change user and group"); } } + } else { + close(fd); } // if (0 != access(dir_engine_info, F_OK)) { - if (-1 == open(dir_engine_info, O_DIRECTORY)) { + fd = open(dir_engine_info, O_DIRECTORY); + if (-1 == fd) { LOGE("[INFO] No directory : %s, errno : %d", dir_engine_info, errno); if (0 != mkdir(dir_engine_info, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) { LOGE("[ERROR] Fail to make directory : %s, errno : %d", dir_engine_info, errno); @@ -234,6 +245,8 @@ static int __save_engine_info_xml(const char *pkgid, gchar *ut, uid_t uid, gid_t LOGD("[DEBUG] Success to change user and group"); } } + } else { + close(fd); } @@ -311,6 +324,10 @@ static void __insert_language_from_metadata(xmlNodePtr root, const char *languag char* voice = NULL; char* lang = NULL; char* type = NULL; + if (NULL == root || NULL == language) { + LOGE("Invalid parameter, root(%p), language(%s)", root, language); + return; + } char *tmp_lang = NULL; char *tmp_free = NULL; @@ -339,7 +356,6 @@ static void __insert_language_from_metadata(xmlNodePtr root, const char *languag } xmlAddChild(root, voices_node); - FREE(tmp_lang) FREE(tmp_free) } @@ -533,7 +549,7 @@ int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgid, const char *appid, GList * while (iter != NULL) { user = (GumUser*) iter->data; g_object_get(G_OBJECT(user), "uid", &uid, NULL); - FREE(home_dir) + G_FREE(home_dir) g_object_get(G_OBJECT(user), "gid", &gid, NULL); g_object_get(G_OBJECT(user), "homedir", &home_dir, NULL); @@ -584,7 +600,7 @@ int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgid, const char *appid, GList * FREE(g_dir_engine_info) G_FREE(user_type) - FREE(home_dir) + G_FREE(home_dir) iter = g_list_next(iter); } else { @@ -781,12 +797,13 @@ int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgid, const char *appid, GList while (iter != NULL) { user = (GumUser*) iter->data; g_object_get(G_OBJECT(user), "uid", &uid, NULL); - FREE(home_dir) + G_FREE(home_dir) g_object_get(G_OBJECT(user), "homedir", &home_dir, NULL); g_object_get(G_OBJECT(user), "usertype", &gumut, NULL); user_type = g_strdup(gum_user_type_to_string(gumut)); if (NULL == user_type) { gum_user_service_list_free(users); + G_FREE(home_dir) g_object_unref(gus); gus = NULL; return -1; @@ -796,6 +813,7 @@ int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgid, const char *appid, GList g_dir_engine_info = (char*)calloc(strlen(home_dir) + 34, sizeof(char)); if (NULL == g_dir_engine_info) { gum_user_service_list_free(users); + G_FREE(home_dir) g_object_unref(gus); gus = NULL; G_FREE(user_type) @@ -815,16 +833,14 @@ int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgid, const char *appid, GList LOGE("[ERROR] Fail to remove engine info file"); } - FREE(home_dir) + G_FREE(home_dir) FREE(g_dir_engine_info) - G_FREE(user_type) - - LOGD("Finish release memory"); - iter = g_list_next(iter); - LOGD("Finish next iter"); - } else { - iter = g_list_next(iter); } + G_FREE(user_type) + + LOGD("Finish release memory"); + iter = g_list_next(iter); + LOGD("Finish next iter"); } gum_user_service_list_free(users); diff --git a/server/ttsd_dbus.c b/server/ttsd_dbus.c index 5342bd3..d8c9290 100644 --- a/server/ttsd_dbus.c +++ b/server/ttsd_dbus.c @@ -354,6 +354,13 @@ int ttsd_dbus_open_connection() g_service_object = (char*)calloc(strlen(TTS_SR_SERVER_SERVICE_OBJECT_PATH) + 1, sizeof(char)); g_service_interface = (char*)calloc(strlen(TTS_SR_SERVER_SERVICE_INTERFACE) + 1, sizeof(char)); + if (NULL == g_service_name || NULL == g_service_object || NULL == g_service_interface) { + SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to allocate memory"); + __ttsd_dbus_service_free(); + __ttsd_dbus_connection_free(); + return -1; + } + snprintf(g_service_name, strlen(TTS_SR_SERVER_SERVICE_NAME) + 1, "%s", TTS_SR_SERVER_SERVICE_NAME); snprintf(g_service_object, strlen(TTS_SR_SERVER_SERVICE_OBJECT_PATH) + 1, "%s", TTS_SR_SERVER_SERVICE_OBJECT_PATH); snprintf(g_service_interface, strlen(TTS_SR_SERVER_SERVICE_INTERFACE) + 1, "%s", TTS_SR_SERVER_SERVICE_INTERFACE); @@ -362,6 +369,13 @@ int ttsd_dbus_open_connection() g_service_object = (char*)calloc(strlen(TTS_NOTI_SERVER_SERVICE_OBJECT_PATH) + 1, sizeof(char)); g_service_interface = (char*)calloc(strlen(TTS_NOTI_SERVER_SERVICE_INTERFACE) + 1, sizeof(char)); + if (NULL == g_service_name || NULL == g_service_object || NULL == g_service_interface) { + SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to allocate memory"); + __ttsd_dbus_service_free(); + __ttsd_dbus_connection_free(); + return -1; + } + snprintf(g_service_name, strlen(TTS_NOTI_SERVER_SERVICE_NAME) + 1, "%s", TTS_NOTI_SERVER_SERVICE_NAME); snprintf(g_service_object, strlen(TTS_NOTI_SERVER_SERVICE_OBJECT_PATH) + 1, "%s", TTS_NOTI_SERVER_SERVICE_OBJECT_PATH); snprintf(g_service_interface, strlen(TTS_NOTI_SERVER_SERVICE_INTERFACE) + 1, "%s", TTS_NOTI_SERVER_SERVICE_INTERFACE); @@ -370,18 +384,18 @@ int ttsd_dbus_open_connection() g_service_object = (char*)calloc(strlen(TTS_SERVER_SERVICE_OBJECT_PATH) + 1, sizeof(char)); g_service_interface = (char*)calloc(strlen(TTS_SERVER_SERVICE_INTERFACE) + 1, sizeof(char)); + if (NULL == g_service_name || NULL == g_service_object || NULL == g_service_interface) { + SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to allocate memory"); + __ttsd_dbus_service_free(); + __ttsd_dbus_connection_free(); + return -1; + } + snprintf(g_service_name, strlen(TTS_SERVER_SERVICE_NAME) + 1, "%s", TTS_SERVER_SERVICE_NAME); snprintf(g_service_object, strlen(TTS_SERVER_SERVICE_OBJECT_PATH) + 1, "%s", TTS_SERVER_SERVICE_OBJECT_PATH); snprintf(g_service_interface, strlen(TTS_SERVER_SERVICE_INTERFACE) + 1, "%s", TTS_SERVER_SERVICE_INTERFACE); } - if (NULL == g_service_name || NULL == g_service_object || NULL == g_service_interface) { - SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to allocate memory"); - __ttsd_dbus_service_free(); - __ttsd_dbus_connection_free(); - return -1; - } - /* request our name on the bus and check for errors */ ret = dbus_bus_request_name(g_conn_listener, g_service_name, DBUS_NAME_FLAG_REPLACE_EXISTING, &err); if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) {