From: Ji-hoon Lee Date: Mon, 20 Apr 2020 00:19:58 +0000 (+0900) Subject: Add NULL checks for xmlNewNode return values X-Git-Tag: submit/tizen/20200528.071502~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6893d7bf49326c6833a02d3e51aa1924642acddb;p=platform%2Fcore%2Fuifw%2Fmulti-assistant.git Add NULL checks for xmlNewNode return values Change-Id: I84f2ad97c4654701d24e47c65ff1725b16bc26d7 --- diff --git a/assistant-parser/src/ma_assistant_parser.c b/assistant-parser/src/ma_assistant_parser.c index 4dfc71f..adc1e63 100644 --- a/assistant-parser/src/ma_assistant_parser.c +++ b/assistant-parser/src/ma_assistant_parser.c @@ -330,16 +330,19 @@ static void __insert_language_from_metadata(xmlNodePtr root, const char *languag xmlNodePtr lang_node = NULL; languages_node = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_LANGUAGE_SET); - - lang = strsep(&tmp_lang, ","); - while (NULL != lang) { - LOGD("lang (%s)", lang); - lang_node = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_LANGUAGE); - xmlNodeSetContent(lang_node, (const xmlChar*)lang); - xmlAddChild(languages_node, lang_node); + if (languages_node) { lang = strsep(&tmp_lang, ","); + while (NULL != lang) { + LOGD("lang (%s)", lang); + lang_node = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_LANGUAGE); + if (lang_node) { + xmlNodeSetContent(lang_node, (const xmlChar*)lang); + xmlAddChild(languages_node, lang_node); + } + lang = strsep(&tmp_lang, ","); + } + xmlAddChild(root, languages_node); } - xmlAddChild(root, languages_node); FREE(tmp_free) } @@ -416,32 +419,46 @@ static int __write_metadata_inxml(const char *pkgid, const char *appid, GList *l __insert_wakeup_word_from_metadata(root, md->value); } else if (!strncmp(md->key, MA_METADATA_ASSISTANT_ICON_PATH, strlen(MA_METADATA_ASSISTANT_ICON_PATH))) { cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_ICON_PATH); - xmlNodeSetContent(cur, (const xmlChar*)md->value); - xmlAddChild(root, cur); + if (cur) { + xmlNodeSetContent(cur, (const xmlChar*)md->value); + xmlAddChild(root, cur); + } } else if (!strncmp(md->key, MA_METADATA_ASSISTANT_NAME, strlen(MA_METADATA_ASSISTANT_NAME))) { cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_NAME); - xmlNodeSetContent(cur, (const xmlChar*)md->value); - xmlAddChild(root, cur); + if (cur) { + xmlNodeSetContent(cur, (const xmlChar*)md->value); + xmlAddChild(root, cur); + } } else if (!strncmp(md->key, MA_METADATA_ASSISTANT_WAKEUP_ENGINE_APPID, strlen(MA_METADATA_ASSISTANT_WAKEUP_ENGINE_APPID))) { cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_WAKEUP_ENGINE_APPID); - xmlNodeSetContent(cur, (const xmlChar*)md->value); - xmlAddChild(root, cur); + if (cur) { + xmlNodeSetContent(cur, (const xmlChar*)md->value); + xmlAddChild(root, cur); + } } else if (!strncmp(md->key, MA_METADATA_ASSISTANT_CUSTOM_UI, strlen(MA_METADATA_ASSISTANT_CUSTOM_UI))) { cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_CUSTOM_UI); - xmlNodeSetContent(cur, (const xmlChar*)md->value); - xmlAddChild(root, cur); + if (cur) { + xmlNodeSetContent(cur, (const xmlChar*)md->value); + xmlAddChild(root, cur); + } } else if (!strncmp(md->key, MA_METADATA_ASSISTANT_VOICE_KEY_SUPPORT_MODE, strlen(MA_METADATA_ASSISTANT_VOICE_KEY_SUPPORT_MODE))) { cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_VOICE_KEY_SUPPORT_MODE); - xmlNodeSetContent(cur, (const xmlChar*)md->value); - xmlAddChild(root, cur); + if (cur) { + xmlNodeSetContent(cur, (const xmlChar*)md->value); + xmlAddChild(root, cur); + } } else if (!strncmp(md->key, MA_METADATA_ASSISTANT_VOICE_KEY_TAP_DURATION, strlen(MA_METADATA_ASSISTANT_VOICE_KEY_TAP_DURATION))) { cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_VOICE_KEY_TAP_DURATION); - xmlNodeSetContent(cur, (const xmlChar*)md->value); - xmlAddChild(root, cur); + if (cur) { + xmlNodeSetContent(cur, (const xmlChar*)md->value); + xmlAddChild(root, cur); + } } else if (!strncmp(md->key, MA_METADATA_ASSISTANT_AUDIO_DATA_PROCESSOR, strlen(MA_METADATA_ASSISTANT_AUDIO_DATA_PROCESSOR))) { cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_AUDIO_DATA_PROCESSOR); - xmlNodeSetContent(cur, (const xmlChar*)md->value); - xmlAddChild(root, cur); + if (cur) { + xmlNodeSetContent(cur, (const xmlChar*)md->value); + xmlAddChild(root, cur); + } } else { LOGW("[WARNING] Unknown metadata type"); } @@ -450,8 +467,10 @@ static int __write_metadata_inxml(const char *pkgid, const char *appid, GList *l } cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_APPID); - xmlNodeSetContent(cur, (const xmlChar*)appid); - xmlAddChild(root, cur); + if (cur) { + xmlNodeSetContent(cur, (const xmlChar*)appid); + xmlAddChild(root, cur); + } LOGD(""); return 0;