aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValeriy Van <valeriy.van@enote.com>2019-12-02 15:02:54 +0100
committerValeriy Van <valeriy.van@enote.com>2019-12-02 15:02:54 +0100
commitcda8623468750c1a6ac403290a838c589cd759b3 (patch)
tree5b17c9c52fed56943a2457ccbdd64aa557c5ef3c
parent51d177e938843cfd422a5cd13e782e85106daf12 (diff)
downloadpugixml-cda8623468750c1a6ac403290a838c589cd759b3.zip
pugixml-cda8623468750c1a6ac403290a838c589cd759b3.tar.gz
pugixml-cda8623468750c1a6ac403290a838c589cd759b3.tar.bz2
Fixing possible null pointer dereference
-rw-r--r--src/pugixml.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/pugixml.cpp b/src/pugixml.cpp
index 1f08b10..80fe605 100644
--- a/src/pugixml.cpp
+++ b/src/pugixml.cpp
@@ -6264,15 +6264,17 @@ namespace pugi
return found.parent().first_element_by_path(next_segment, delimiter);
else
{
- for (xml_node_struct* j = found._root->first_child; j; j = j->next_sibling)
- {
- if (j->name && impl::strequalrange(j->name, path_segment, static_cast<size_t>(path_segment_end - path_segment)))
- {
- xml_node subsearch = xml_node(j).first_element_by_path(next_segment, delimiter);
-
- if (subsearch) return subsearch;
- }
- }
+ if (found._root) {
+ for (xml_node_struct* j = found._root->first_child; j; j = j->next_sibling)
+ {
+ if (j->name && impl::strequalrange(j->name, path_segment, static_cast<size_t>(path_segment_end - path_segment)))
+ {
+ xml_node subsearch = xml_node(j).first_element_by_path(next_segment, delimiter);
+
+ if (subsearch) return subsearch;
+ }
+ }
+ }
return xml_node();
}