Fix corrupted double-linked list 76/186876/1
authorsooyeon.kim <sooyeon.kim@samsung.com>
Thu, 16 Aug 2018 06:58:52 +0000 (15:58 +0900)
committersooyeon.kim <sooyeon.kim@samsung.com>
Thu, 16 Aug 2018 06:58:52 +0000 (15:58 +0900)
Change-Id: Ib3ac1485157c741f0f5c245892155e25b42d8564
Signed-off-by: sooyeon.kim <sooyeon.kim@samsung.com>
src/vc_elm_core.c

index d46c05d..df50407 100644 (file)
@@ -2351,18 +2351,26 @@ int _vc_elm_core_read_xml_data()
                                                        while (tmp != NULL) {
                                                                if (0 == xmlStrcmp(tmp->name, XML_CAST VC_ELM_TAG_ACTION_NAME)) {
                                                                        key = xmlNodeGetContent(tmp);
-                                                                       VC_ELM_LOG_DBG("action name %s", (char *)key);
-                                                                       action_name = eina_stringshare_add((char *)key);
-                                                                       xmlFree(key);
+                                                                       if (NULL != key) {
+                                                                               VC_ELM_LOG_DBG("action name %s", (char *)key);
+                                                                               action_name = eina_stringshare_add((char *)key);
+                                                                               xmlFree(key);
+                                                                       } else {
+                                                                               VC_ELM_LOG_DBG("action name is NULL");
+                                                                       }
                                                                } else if (0 == xmlStrcmp(tmp->name, XML_CAST VC_ELM_TAG_ACTION_COMMAND)) {
                                                                        const char *action_command = NULL;
                                                                        key = xmlNodeGetContent(tmp);
-                                                                       VC_ELM_LOG_DBG("action command %s", (char *)key);
-                                                                       if (action_name != NULL) {
-                                                                               action_command = eina_stringshare_add((char *)key);
-                                                                               eina_hash_add(g_config_action_map, action_name, action_command);
+                                                                       if (NULL != key) {
+                                                                               VC_ELM_LOG_DBG("action command %s", (char *)key);
+                                                                               if (action_name != NULL) {
+                                                                                       action_command = eina_stringshare_add((char *)key);
+                                                                                       eina_hash_add(g_config_action_map, action_name, action_command);
+                                                                               }
+                                                                               xmlFree(key);
+                                                                       } else {
+                                                                               VC_ELM_LOG_DBG("action command is NULL");
                                                                        }
-                                                                       xmlFree(key);
                                                                }
                                                                tmp = tmp->next;
                                                        }
@@ -2378,9 +2386,13 @@ int _vc_elm_core_read_xml_data()
                                                        while (tmp != NULL) {
                                                                if (0 == xmlStrcmp(tmp->name, XML_CAST VC_ELM_TAG_WIDGET_NAME)) {
                                                                        key = xmlNodeGetContent(tmp);
-                                                                       VC_ELM_LOG_DBG("widget name %s", (char *)key);
-                                                                       widget_name = eina_stringshare_add((char *)key);
-                                                                       xmlFree(key);
+                                                                       if (NULL != key) {
+                                                                               VC_ELM_LOG_DBG("widget name %s", (char *)key);
+                                                                               widget_name = eina_stringshare_add((char *)key);
+                                                                               xmlFree(key);
+                                                                       } else {
+                                                                               VC_ELM_LOG_DBG("widget name is NULL");
+                                                                       }
                                                                } else if (0 == xmlStrcmp(tmp->name, XML_CAST VC_ELM_TAG_WIDGET_ACTIONS)) {
                                                                        xmlNodePtr actions = tmp->xmlChildrenNode;
                                                                        Eina_List *actions_list = NULL;
@@ -2388,10 +2400,14 @@ int _vc_elm_core_read_xml_data()
                                                                                if (0 == xmlStrcmp(actions->name, XML_CAST VC_ELM_TAG_ACTION_NAME)) {
                                                                                        const char *action_tag = NULL;
                                                                                        key = xmlNodeGetContent(actions);
-                                                                                       VC_ELM_LOG_DBG("widget action name %s", (char*)key);
-                                                                                       action_tag = eina_stringshare_add((char*)key);
-                                                                                       actions_list = eina_list_append(actions_list, action_tag);
-                                                                                       xmlFree(key);
+                                                                                       if (NULL != key) {
+                                                                                               VC_ELM_LOG_DBG("widget action name %s", (char*)key);
+                                                                                               action_tag = eina_stringshare_add((char*)key);
+                                                                                               actions_list = eina_list_append(actions_list, action_tag);
+                                                                                               xmlFree(key);
+                                                                                       } else {
+                                                                                               VC_ELM_LOG_DBG("widget action name is NULL");
+                                                                                       }
                                                                                }
                                                                                actions = actions->next;
                                                                        }
@@ -2408,26 +2424,38 @@ int _vc_elm_core_read_xml_data()
                                        while (child != NULL) {
                                                if (0 == xmlStrcmp(child->name, XML_CAST VC_ELM_TAG_HINT_SHOW)) {
                                                        key = xmlNodeGetContent(child);
-                                                       VC_ELM_LOG_DBG("hint show %s", (char*)key);
-                                                       if (g_tooltips_show)
-                                                               free(g_tooltips_show);
-                                                       g_tooltips_show = strdup((char*)key);
-                                                       xmlFree(key);
+                                                       if (NULL != key) {
+                                                               VC_ELM_LOG_DBG("hint show %s", (char*)key);
+                                                               if (g_tooltips_show)
+                                                                       free(g_tooltips_show);
+                                                               g_tooltips_show = strdup((char*)key);
+                                                               xmlFree(key);
+                                                       } else {
+                                                               VC_ELM_LOG_DBG("hint show is NULL");
+                                                       }
                                                } else if (0 == xmlStrcmp(child->name, XML_CAST VC_ELM_TAG_HINT_DIRECTION)) {
                                                        key = xmlNodeGetContent(child);
-                                                       VC_ELM_LOG_DBG("hint direction %s", (char*)key);
-                                                       if (g_tooltips_default_direction)
-                                                               free(g_tooltips_default_direction);
-                                                       g_tooltips_default_direction = strdup((char*)key);
-                                                       xmlFree(key);
+                                                       if (NULL != key) {
+                                                               VC_ELM_LOG_DBG("hint direction %s", (char*)key);
+                                                               if (g_tooltips_default_direction)
+                                                                       free(g_tooltips_default_direction);
+                                                               g_tooltips_default_direction = strdup((char*)key);
+                                                               xmlFree(key);
+                                                       } else {
+                                                               VC_ELM_LOG_DBG("hint direction is NULL");
+                                                       }
                                                } else if (0 == xmlStrcmp(child->name, XML_CAST VC_ELM_TAG_HINT_IMAGE)) {
                                                        key = xmlNodeGetContent(child);
-                                                       VC_ELM_LOG_DBG("hint image %s", (char*)key);
-                                                       if (g_tooltips_image_path)
-                                                               free(g_tooltips_image_path);
-                                                       charkey = tzplatform_mkpath(TZ_SYS_RO_SHARE, (const char*)key);
-                                                       g_tooltips_image_path = strdup(charkey);
-                                                       xmlFree(key);
+                                                       if (NULL != key) {
+                                                               VC_ELM_LOG_DBG("hint image %s", (char*)key);
+                                                               if (g_tooltips_image_path)
+                                                                       free(g_tooltips_image_path);
+                                                               charkey = tzplatform_mkpath(TZ_SYS_RO_SHARE, (const char*)key);
+                                                               g_tooltips_image_path = strdup(charkey);
+                                                               xmlFree(key);
+                                                       } else {
+                                                               VC_ELM_LOG_DBG("hint image is NULL");
+                                                       }
                                                }
                                                child = child->next;
                                        }
@@ -2439,16 +2467,28 @@ int _vc_elm_core_read_xml_data()
                        while (cur != NULL) {
                                if (0 == xmlStrcmp(cur->name, XML_CAST VC_ELM_TAG_TIZEN_VERSION)) {
                                        key = xmlNodeGetContent(cur);
-                                       VC_ELM_LOG_DBG("hint direction %s", (char*)key);
-                                       xmlFree(key);
+                                       if (NULL != key) {
+                                               VC_ELM_LOG_DBG("hint direction %s", (char*)key);
+                                               xmlFree(key);
+                                       } else {
+                                               VC_ELM_LOG_DBG("hint direction is NULL");
+                                       }
                                } else if (0 == xmlStrcmp(cur->name, XML_CAST VC_ELM_TAG_PROFILE)) {
                                        key = xmlNodeGetContent(cur);
-                                       VC_ELM_LOG_DBG("hint direction %s", (char*)key);
-                                       xmlFree(key);
+                                       if (NULL != key) {
+                                               VC_ELM_LOG_DBG("hint direction %s", (char*)key);
+                                               xmlFree(key);
+                                       } else {
+                                               VC_ELM_LOG_DBG("hint direction is NULL");
+                                       }
                                } else if (0 == xmlStrcmp(cur->name, XML_CAST VC_ELM_TAG_EFL_VERSION)) {
                                        key = xmlNodeGetContent(cur);
-                                       VC_ELM_LOG_DBG("hint direction %s", (char*)key);
-                                       xmlFree(key);
+                                       if (NULL != key) {
+                                               VC_ELM_LOG_DBG("hint direction %s", (char*)key);
+                                               xmlFree(key);
+                                       } else {
+                                               VC_ELM_LOG_DBG("hint direction is NULL");
+                                       }
                                }
                                cur = cur->next;
                        }