Fix memory leak about calling xmlGetProp() 64/281464/1 accepted/tizen_7.0_unified accepted/tizen_7.0_unified_hotfix accepted/tizen_unified tizen_7.0 tizen_7.0_hotfix accepted/tizen/7.0/unified/20221110.061210 accepted/tizen/7.0/unified/hotfix/20221116.112124 accepted/tizen/unified/20220920.110711 tizen_7.0_m2_release
authorJinWang An <jinwang.an@samsung.com>
Mon, 19 Sep 2022 08:08:47 +0000 (17:08 +0900)
committerJinWang An <jinwang.an@samsung.com>
Mon, 19 Sep 2022 08:08:47 +0000 (17:08 +0900)
Change-Id: I31cc4c08cedcd26f050e317beadb56ae3ba0150e
Signed-off-by: JinWang An <jinwang.an@samsung.com>
src/setting-language.c

index 7789d47ad5f7ef88ac240138f9ed11e905e5a0af..1b3e810b54f218f0ff2c586c17643188199c7ad6 100644 (file)
@@ -536,8 +536,10 @@ static void _tree_walk_langlist(xmlNodePtr cur)
 
        for (cur_node = cur; cur_node; cur_node = cur_node->next) {
                if (cur_node->type == XML_ELEMENT_NODE) {
-                       id       = (char *)g_strdup((char *)xmlGetProp(cur_node, (const xmlChar *)"id"));
-                       name = (char *)g_strdup((char *)xmlGetProp(cur_node, (const xmlChar *)"string"));
+                       xmlChar *xml_id  = xmlGetProp(cur_node, (const xmlChar *)"id");
+                       xmlChar *xml_name = xmlGetProp(cur_node, (const xmlChar *)"string");
+                       id       = (char *)g_strdup((char *)xml_id);
+                       name = (char *)g_strdup((char *)xml_name);
 
                        struct _lang_menu_item *pitem = (struct _lang_menu_item *)calloc(1, sizeof(struct _lang_menu_item));
                        if (pitem) {
@@ -554,6 +556,8 @@ static void _tree_walk_langlist(xmlNodePtr cur)
                        }
                        FREE(id);
                        FREE(name);
+                       xmlFree(xml_id);
+                       xmlFree(xml_name);
                }
        }
 }