Add NULL checks for xmlNewNode return values 79/231179/1
authorJi-hoon Lee <dalton.lee@samsung.com>
Mon, 20 Apr 2020 00:19:58 +0000 (09:19 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Mon, 20 Apr 2020 00:19:58 +0000 (09:19 +0900)
Change-Id: I84f2ad97c4654701d24e47c65ff1725b16bc26d7

assistant-parser/src/ma_assistant_parser.c

index 4dfc71f02f5dc35e17b9f6fcc22cba51ea761249..adc1e63da039219221727ff8bd972b7dff1c3a46 100644 (file)
@@ -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;