diff options
author | lvtao-sec <[email protected]> | 2020-08-22 18:50:00 +0800 |
---|---|---|
committer | raveit65 <[email protected]> | 2020-08-26 13:35:49 +0200 |
commit | 9f86b203c1a411dd24b3219c104db16b6ecedc95 (patch) | |
tree | 9ef7eb6e06b7bfe67438ddfe5350bae41f51ef09 | |
parent | 03693b12f9d76bc16c02d5ac6ff42ad51c7316fa (diff) | |
download | atril-9f86b203c1a411dd24b3219c104db16b6ecedc95.tar.bz2 atril-9f86b203c1a411dd24b3219c104db16b6ecedc95.tar.xz |
check return value of xmlDocGetRootElement call if is NULL
-rw-r--r-- | backend/epub/epub-document.c | 14 | ||||
-rw-r--r-- | cut-n-paste/toolbar-editor/egg-toolbars-model.c | 17 |
2 files changed, 28 insertions, 3 deletions
diff --git a/backend/epub/epub-document.c b/backend/epub/epub-document.c index 552a18d3..8f97aa9f 100644 --- a/backend/epub/epub-document.c +++ b/backend/epub/epub-document.c @@ -181,8 +181,18 @@ epub_document_check_hits(EvDocumentFind *document_find, { gchar *filepath = g_filename_from_uri((gchar*)page->backend_page,NULL,NULL); htmlDocPtr htmldoc = xmlParseFile(filepath); - htmlNodePtr htmltag = xmlDocGetRootElement(htmldoc); - int count=0; + if (htmldoc == NULL) { + g_free(filepath); + return 0; + } + htmlNodePtr htmltag = xmlDocGetRootElement(htmldoc); + if (htmltag == NULL) { + g_free(filepath); + xmlFreeDoc (htmldoc); + return 0; + } + + int count=0; htmlNodePtr bodytag = htmltag->xmlChildrenNode; while ( xmlStrcmp(bodytag->name,(xmlChar*)"body") ) { diff --git a/cut-n-paste/toolbar-editor/egg-toolbars-model.c b/cut-n-paste/toolbar-editor/egg-toolbars-model.c index 94cc7fd3..f3cc8022 100644 --- a/cut-n-paste/toolbar-editor/egg-toolbars-model.c +++ b/cut-n-paste/toolbar-editor/egg-toolbars-model.c @@ -597,7 +597,12 @@ egg_toolbars_model_load_toolbars (EggToolbarsModel *model, return FALSE; } root = xmlDocGetRootElement (doc); - + if (root == NULL) + { + g_warning ("Failed to get root element"); + xmlFreeDoc (doc); + return FALSE; + } parse_toolbars (model, root->children); xmlFreeDoc (doc); @@ -627,6 +632,8 @@ egg_toolbars_model_load_toolbars_from_resource (EggToolbarsModel *model, g_error ("Failed to load XML data from resource %s", path); root = xmlDocGetRootElement (doc); + if (root == NULL) + g_error ("Failed to get root element"); parse_toolbars (model, root->children); xmlFreeDoc (doc); @@ -691,6 +698,12 @@ egg_toolbars_model_load_names (EggToolbarsModel *model, return FALSE; } root = xmlDocGetRootElement (doc); + if (root == NULL) + { + g_warning ("Failed to get root element"); + xmlFreeDoc (doc); + return FALSE; + } parse_names (model, root->children); @@ -721,6 +734,8 @@ egg_toolbars_model_load_names_from_resource (EggToolbarsModel *model, g_error ("Failed to load XML data from resource %s", path); root = xmlDocGetRootElement (doc); + if (root == NULL) + g_error ("Failed to get root element"); parse_names (model, root->children); xmlFreeDoc (doc); |