From: sooyeon.kim Date: Tue, 3 May 2016 14:38:22 +0000 (+0900) Subject: fix SVACE - NULL_AFTER_DEREF X-Git-Tag: accepted/tizen/common/20160518.124958~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F48%2F68348%2F2;p=platform%2Fcore%2Fuifw%2Fstt.git fix SVACE - NULL_AFTER_DEREF Change-Id: I4e3a6d9e0ea811ec04b8ce10a64e63576f522a21 Signed-off-by: sooyeon.kim --- diff --git a/common/stt_config_mgr.c b/common/stt_config_mgr.c old mode 100644 new mode 100755 index b66b1d8..4df6b14 --- a/common/stt_config_mgr.c +++ b/common/stt_config_mgr.c @@ -353,7 +353,18 @@ int __stt_config_set_auto_language() strncpy(candidate_lang, value, 5); free(value); + /* Check current config info */ + if (NULL == g_config_info) { + SLOG(LOG_ERROR, stt_tag(), "Current config info is NULL"); + return STT_CONFIG_ERROR_OPERATION_FAILED; + } + /* Check current language */ + if (NULL == g_config_info->language) { + SLOG(LOG_ERROR, stt_tag(), "Current config language is NULL"); + return STT_CONFIG_ERROR_OPERATION_FAILED; + } + if (0 == strncmp(g_config_info->language, candidate_lang, 5)) { SLOG(LOG_DEBUG, stt_tag(), "[Config] Language is auto. STT language(%s) is same with display lang", g_config_info->language); return 0; @@ -362,12 +373,6 @@ int __stt_config_set_auto_language() } if (true == __stt_config_mgr_check_lang_is_valid(g_config_info->engine_id, candidate_lang)) { - /* stt default language change */ - if (NULL == g_config_info->language) { - SLOG(LOG_ERROR, stt_tag(), "Current config language is NULL"); - return -1; - } - char* before_lang = NULL; if (0 != stt_parser_set_language(candidate_lang)) { SLOG(LOG_ERROR, stt_tag(), "Fail to save default language"); @@ -441,10 +446,8 @@ int __stt_config_set_auto_language() iter = g_slist_next(iter); } - if (NULL != g_config_info->language) { - free(g_config_info->language); - g_config_info->language = strdup(tmp_language); - } + free(g_config_info->language); + g_config_info->language = strdup(tmp_language); free(tmp_language); } @@ -1058,16 +1061,14 @@ int stt_config_mgr_set_engine(const char* engine) lang = iter_lang->data; SLOG(LOG_DEBUG, stt_tag(), " %s", lang); - if (NULL != lang) { - if (0 == strcmp(lang, g_config_info->language)) { + if (NULL != lang && NULL != g_config_info->language) { + if (0 == strcmp(lang, g_config_info->language)) { /* language is valid */ is_valid_lang = true; - if (NULL != g_config_info->language) { - free(g_config_info->language); + free(g_config_info->language); + g_config_info->language = strdup(lang); - g_config_info->language = strdup(lang); - } break; } }